Eureka 集群高可用配置.


SERVER:1


server:
  port: 1111
eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address}
    instance-id: ${eureka.instance.hostname}:${server.port}
    preferIpAddress: true      #指定通過IP注冊,一般服務集群時配置,需要ip-address參數一起設置(保證hostName和ip-address一樣),以免eureka管理頁面出現不可用分片提示信息(unavailable-replicas),服務的注冊默認是通過hostName注冊的,當判斷注冊的hostName和服務
    ip-address: ${EUREKA_IP:${eureka.instance.hostname}} #強制指定eureka的ip地址
  client:
    service-url:
      defaultZone: http://${eureka.instance.hostname}:1112/eureka/
    fetch-registry: true        #集群時需要強制手動指定,fetch-registry、register-with-eureka都需要設置為true
    register-with-eureka: true  #集群時需要強制手動指定,fetch-registry、register-with-eureka都需要設置為true

 

 

SERVER:2

server:
  port: 1112
eureka:
  instance:
    hostname: ${spring.cloud.client.ip-address}
    instance-id: ${eureka.instance.hostname}:${server.port} #eureka server管理頁面顯示的服務狀態
    preferIpAddress: true                                 #指定通過IP注冊,服務集群高可用必須配置,需要ip-address參數一起設置,以免eureka管理頁面出現不可用分片提示信息(unavailable-replicas)
    ip-address: ${EUREKA_IP:${eureka.instance.hostname}}  #強制指定eureka的ip地址
  client:
    service-url:
      defaultZone:  http://${eureka.instance.hostname}:1111/eureka/
    fetch-registry: true        #集群時需要強制手動指定,fetch-registry、register-with-eureka都需要設置為true
    register-with-eureka: true  #集群時需要強制手動指定,fetch-registry、register-with-eureka都需要設置為true

需要注意的是

Eureka高可用部署,啟動多個注冊中心后,節點均出現在unavailable-replicas,查閱各類資料測試,提供方案:

1.eureka.client.serviceUrl.defaultZone配置項的地址,不能使用localhost,要使用ip或域名

2.spring.application.name要一致(這個個人測試默認不配也可以)

3. fetch-registry、register-with-eureka 都需要設置為true,要不然集群服務器數據不同步,目前Spring Cloud 版本為 Finchley.RELEASE

默認情況下,eureka client使用主機名(hostName)向注冊中心注冊。 

當prefer-ip-address: true時 ,client使用的是ip向服務中心注冊 ,但是默認獲取的ip是 127.0.0.1。默認情況下 當 這個獲取的ip 和 hostName 不同時 ,則產生不可用分片提示信息(unavailable-replicas),並且集群間的數據不會同步。

所以要么指定 兩個ip相同 ,就不會有提示了(指定ip-address和hostname相同)。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM