SpringCloud——(1)Eureka

服务注册与发现

【一】Eureka是什么

服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。

Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装。主要负责完成微服务架构中的服务治理功能。

Spring Cloud Eureka在微服务中非常重要的角色,相当于服务的心脏,所以要充分保障我们的服务注册中心的高可用。

【二】Eureka功能

Eureka Server提供服务注册服务,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到

EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)

【三】搭建Eureka环境

  1. 创建项目
    在这里插入图片描述
    在这里插入图片描述
    构建成功以后目录结构如下:
    在这里插入图片描述
  2. 添加对应的maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.M6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.feng</groupId>
    <artifactId>eureka</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka</name>
    <description>eureka</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.M2</spring-cloud.version>
    </properties>

    <dependencies>
        <!--eureka-server服务注册中心-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

</project>

  1. 添加yml的配置
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
    register-with-eureka: false  #当前的服务不注册到服务注册中心

spring:
  application:
    name: eureka

server:
  port: 8761
  1. 添加注解
    在这里插入图片描述
  2. 启动
    如果能够看到这样的界面代表我们的服务注册中心可以了:
    在这里插入图片描述

【四】Eureka的高可用

  1. 添加EurekaApplication启动
    在这里插入图片描述
    在这里插入图片描述
  2. 启动两个EurekaApplication
    两个Eureka相互进行注册,两两注册
    在这里插入图片描述
    在这里插入图片描述


    在浏览器上进行查看两个是否成功:
    8761和8762

    在这里插入图片描述
    在这里插入图片描述
    当我们正式发布的时候就是打包为war包进行发布到服务器上

【五】其它链接

https://blog.csdn.net/sunhuiliang85/article/details/76222517
https://segmentfault.com/a/1190000020248919?utm_source=tag-newest
https://www.cnblogs.com/shun-gege/p/9323061.html

发布了130 篇原创文章 · 获赞 88 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/wenge1477/article/details/102459111
今日推荐