天天看点

SpringCloud-01:Eureka集群搭建,微服务向Eureka注册

Eureka是SpringCloud用于实现服务注册与发现最早的组件之一,用于微服务架构下服务的统一登记和管理。

创建SpringCloud项目,勾选Neflix Eureka

新建STS/IDEA spring-boot-starter项目:

new project--spring initializr--勾选SpringCloud Discover下的Eureka Server

集成当前最新的Spring版本:

SpringBoot: 2.2.6.RELEASE
SpringCloud: Hoxton.SR3
           

当前集成的Eureka版本是

2.2.2.RELEASE

单节点Eureka服务端搭建

  1. 在@SpringBootApplication启动类上面加注解:

    @EnableEurekaServer

  2. 在application.properties中增加Eureka相关配置:
#是否将自己注册到Eureka Server,默认为true,由于当前就是server,故而设置成false,表明该服务不会向eureka注册自己的信息
#eureka.client.register-with-eureka=false
#是否从eureka server获取注册信息,由于单节点,不需要同步其他节点数据,用false
#eureka.client.fetch-registry=false
#设置服务注册中心的URL,用于client和server端交流
#eureka.client.service-url.defaultZone
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:7900/eureka/
           

浏览器访问http://localhost:7900 就可以看到一个单机Eureka服务端就搭建好了。

两个节点集群的搭建

  1. 修改本机hosts文件配置,添加ip到域名的映射:
    127.0.0.1 euk1.com
    127.0.0.1 euk2.com
               
  2. 节点1配置

    application-euk1.properties

#peer端的连接地址
eureka.client.service-url.defaultZone=http://euk2.com:7902/eureka/
#hostname用来查找主机, appname用来表示分组
eureka.instance.hostname=euk1.com
#tomcat的端口
server.port=7901
           
  1. 节点2的配置

    application-euk2.properties

#peer端的连接地址
eureka.client.service-url.defaultZone=http://euk1.com:7901/eureka/
#hostname用来查找主机, appname用来表示分组
eureka.instance.hostname=euk2.com
#tomcat的端口
server.port=7902
           

两个服务端分别起来即可看到集群搭建好了。

三个节点的集群

#application.properties
eureka.client.service-url.defaultZone=http://euk1.com:7901/eureka/,http://euk2.com:7902/eureka/,http://euk3.com:7903/eureka/
spring.profiles.active=euk3
spring.application.name=EurekaServer
---
#application-euk1.properties
eureka.instance.hostname=euk1.com
server.port=7901
---
#application-euk2.properties
eureka.instance.hostname=euk2.com
server.port=7902
---
#application-euk3.properties
eureka.instance.hostname=euk3.com
server.port=7903
           

微服务向Eureka注册

创建微服务

  1. 每一个微服务需要将自身的服务信息注册到Eureka,因此每一个微服务都是Eureka的客户端,新建SpringCloud微服务的时候,需要勾选

    Spring Cloud Discovery

    下的

    Eureka Discovery Client

    或者手动在pom.xml中添加依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
           
  1. application.properties中添加Eureka服务端(集群)的地址:
eureka.client.service-url.defaultZone=http://localhost:7900/eureka/
eureka.instance.instance-id="eureka-consumer1"
           

完成以上两步后启动服务,该服务会自动向Eureka发起注册。

参考文档:

https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.2.RELEASE/reference/html/#registering-with-eureka

继续阅读