搭建Eureka Server高可用集群

搭建集群必要性

在生产环境中,会配置 Eureka Server集群实现高可用性。Eureka Server集群之中的节点通过点对点(P2P)通信方式共享服务注册表。
image.png

服务信息

  1. 服务注册中心:cloud-eureka-server (8761)
  2. 服务注册中心:cloud-eureka-server (8762)

搭建步骤

  1. 修改本机的host属性

通过在个人计算机中进行模拟集群搭建。

  1. 127.0.0.1 CloudEurekaServerA
  2. 127.0.0.1 CloudEurekaServerB
  1. 修改cloud-eureka-server工程的yml配置文件 ```yaml

    指定应⽤名称

    spring: application: name: cloud-eureka-server

第⼀个profile,后期启动spring-boot项⽬时,可通过命令参数指定

spring: profiles: CloudEurekaServerA server: port: 8761 eureka: instance: hostname: CloudEurekaServerA client: register-with-eureka: true fetch-registry: true serviceUrl:

  1. defaultZone: http://CloudEurekaServerB:8762/eureka

第⼆个profile,后期启动spring-boot项⽬时,可通过命令参数指定

spring: profiles: CloudEurekaServerB server: port: 8762 eureka: instance: hostname: CloudEurekaServerB client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: http://CloudEurekaServerA:8761/eureka `` 说明:<br />(1)在一个实例中,将另外的一个实例作为集群中的镜像节点,那么在这个实例中的eureka.client.servuceUrl.defaultZone的值url中的CloudEurekaServerA需要与另外一个实例中的eureka.instance.hostname的值CloudEurekaServerA保持一致。<br />(2)register-with-eurekafetch-registry` 在单节点设置为false,因为只有一台Eureka Server,并不需要自己注册自己,而现在有了集群,需要在集群的其他节点中注册本服务,故设置为true。

  1. 启动两次Spring Boot项目,分别使用两个不同的profiles

image.png

  1. 访问EurekaServer页面 http://cloudeurekaservera:8761/http://cloudeurekaserverb:8762/ , 会发现注册中心 cloud-eureka-server 已经有两个节点,并且 registered-replicas (相邻集群复制节点)中已经包含了对方。

image.png
说明:除了使用同一个工程启动两次的方法外,也可以配置两个工程。