搭建Eureka Server高可用集群
搭建集群必要性
在生产环境中,会配置 Eureka Server集群实现高可用性。Eureka Server集群之中的节点通过点对点(P2P)通信方式共享服务注册表。
服务信息
服务注册中心:cloud-eureka-server (8761)
服务注册中心:cloud-eureka-server (8762)
搭建步骤
- 修改本机的host属性
通过在个人计算机中进行模拟集群搭建。
127.0.0.1 CloudEurekaServerA
127.0.0.1 CloudEurekaServerB
第⼀个profile,后期启动spring-boot项⽬时,可通过命令参数指定
spring: profiles: CloudEurekaServerA server: port: 8761 eureka: instance: hostname: CloudEurekaServerA client: register-with-eureka: true fetch-registry: true serviceUrl:
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-eureka和
fetch-registry` 在单节点设置为false,因为只有一台Eureka Server,并不需要自己注册自己,而现在有了集群,需要在集群的其他节点中注册本服务,故设置为true。
- 启动两次Spring Boot项目,分别使用两个不同的profiles
- 访问EurekaServer页面
http://cloudeurekaservera:8761/
和http://cloudeurekaserverb:8762/
, 会发现注册中心cloud-eureka-server
已经有两个节点,并且registered-replicas
(相邻集群复制节点)中已经包含了对方。
说明:除了使用同一个工程启动两次的方法外,也可以配置两个工程。