解決Eureka高可用配置時,available-replicas節點不夠或沒有,或節點都在unavailable-replicas下的情況。

一般在實際集羣中,Eureka的註冊中心前面是域名和IP。而測試搭建環境的時候在同一臺主機搭建集羣就無法滿足這個情況。而Eureka是默認用ip去解析defaultZone。

測試通過可用的集羣   yml配置:

spring:
  application:
    name: EurekaServer
---
spring:
  profiles: EurekaServer_8699
server:
  port: 8699
# 指定當前eureka客戶端的註冊地址,
eureka:
  instance:
    hostname: peer8699
    preferIpAddress: false
  client:
    service-url:
      defaultZone: http://peer8699:8699/eureka,http://peer8698:8698/eureka,http://peer8697:8697/eureka
    register-with-eureka: true #自身 不在向eureka註冊
    fetch-registry: true  #啓動時禁用client的註冊
---
spring:
  profiles: EurekaServer_8698
server:
  port: 8698
# 指定當前eureka客戶端的註冊地址,
eureka:
  instance:
    hostname: peer8698
    preferIpAddress: false
  client:
    service-url:
      defaultZone: http://peer8698:8698/eureka,http://peer8697:8697/eureka,http://peer8699:8699/eureka
    register-with-eureka: true #自身 不在向eureka註冊
    fetch-registry: true  #啓動時禁用client的註冊
---
spring:
  profiles: EurekaServer_8697
server:
  port: 8697
# 指定當前eureka客戶端的註冊地址,
eureka:
  instance:
    hostname: peer8697
    preferIpAddress: false
  client:
    service-url:
      defaultZone: http://peer8697:8697/eureka,http://peer8699:8699/eureka,http://peer8698:8698/eureka
    register-with-eureka: true #自身 不在向eureka註冊
    fetch-registry: true  #啓動時禁用client的註冊

我們可以看見爲了在同一個主機下能測試集羣的高可用,我們需要自己映射域名,需要在windows中的修改hosts文件

在win7中改變hosts的方法:https://mp.csdn.net/postedit/90563819

我的hosts文件:

改好後添加hostname,如上面yml中hostname的配置,這裏給出配置片段:

eureka:
  instance:
    hostname: peer8699
    preferIpAddress: false

 第四行是關鍵:當我把preferIpAddress寫成prefer-ip-address是無效的!需要駝峯原則!!並且在其他配置項也會出現 橫杆無法配置的情況

能正常使用的是 preferIpAddress: false

這是配置Eureka在解析默認空間時不偏好IP地址來解析的方法,因爲我們本地測試一臺主機的情況沒有多的IP地址來測試,只能通過在hosts中設置映射,使不同域名映射到一個本機ip(127.0.0.1 )來達到一個defaultZone中有多個配置中心掛載點的方式。這樣配置後就能出現正常的配置了,所有掛載點都 有效了:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章