Eureka 高可用 - 踩坑回憶


1、application.yml中eureka配置更改

## Eurake 公用配置
## 向其他注冊中心注冊
eureka.client.register-with-eureka=true
## 獲取其他注冊中心注冊信息
eureka.client.fetch-registry=true

也可以刪除此配置,默認是true

2、eureka.client.service-url.defaultZone的host不要使用嵌套配置

server:
  port: 8761

eureka:
  instance:
    hostname: peer2

eureka:
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

如上,嵌套了eureka.instance.hostname配置。這會導致注冊中心集群構建出問題:其他注冊中心的DS Replicas 無法顯示此注冊中心的節點信息

3、eureka.client.service-url.defaultZone的host不要使用127.0.0.1或者localhost,使用自定義的host

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer2:8761/eureka/

同時更改系統hosts配置:

linux系統通過vim /etc/hosts

windows電腦,在c:/windows/systems/drivers/etc/hosts 修改

添加配置:

    127.0.0.1 peer1
    127.0.0.1 peer2

如果配置的時候使用localhost,注冊中心上注冊的其他服務實例會被莫名地剔除,即使開啟eureka的自我保護機制,依然不能阻止服務被剔除,且無任何異常,且新注冊的服務提供者實例也無法進行數據同步。

可能的原因:配置的時候使用localhost,這個是不會發給網卡的(回環地址),服務之間是無法通過這個互相通訊


免責聲明!

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



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