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地址與域名),而認為分片均處於不可達狀態。
語言組織不佳,有正解者還請指正。