Eureka高可用部署,启动多个注册中心后,节点均出现在unavailable-replicas,查阅各类资料测试,提供方案:
1.eureka.client.serviceUrl.defaultZone配置项的地址,不能使用localhost,要使用域名,DNS解析请自行配置。
2.spring.application.name要一致(这个个人测试默认不配也可以)
3.如下两个参数需配为true(个人测试默认不配也可行)
eureka:
client:
register-with-eureka: true
fetch-registry: true
4.配置eureka.instance.hostname(好像看到过正常eureka会自动拉取设备host,但各节点在同一机器下时请务必添加,注意各节点配置自己节点的host)
eureka:
instance:
hostname:host1
5.千折腾万折腾还是不好使的时候,请去掉下面这个参数或者改为false(神坑),未找到官方原因。。
eureka:
instance:
prefer-ip-address: true
-------------------
个人大概理解了下,prefer-ip-address: true为不使用主机名来定义注册中心的地址,而使用IP地址的形式,而defaultZone中是以域名的方式向注册中心注册的(测试了下使用IP注册到备份节点不可识别),最终导致分片节点不能识别匹配(IP地址与域名),而认为分片均处于不可达状态。
语言组织不佳,有正解者还请指正。