在学习Eureka中配置高可用注册中心,启动两个注册中心peer1和peer2,希望看到如下图一和下图二中的结果,但是有时候会发现另一个服务注册中心会出现在unavailable-replicas项中,而不是在available-replicas中, 

                                                                                      图一

                                                                                                图二

可能的问题有几下几个:

  1. eureka.client.serviceUrl.defaultZone配置项的域名,需要先再host中进行映射,同时其值应该设置为所有存在的注册中心的地址,如:eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka/
  2. 服务注册中心之间相互注册要开启: 

    eureka.client.register-with-eureka=true 
    eureka.client.fetch-registry=true 
  3. 必须要删除掉原始的application.properties文件,否则会出现干扰,如下图所示:

\

ps:写分布式注册中心时,第二点必须先是地声明;写单点注册中心的时候,也必须将这两个配置项显式地设为false(貌似之前看书的时候记得这两个配置的默认值是true,但是后来发现,spring cloud的版本更新得太快了,不同版本间的默认值好像都不同,个人认为还是都做成显式地声明比较好)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐