Eureka服務註冊不可用問題

weixin_34120274發表於2018-08-19

最近開發了一個微服務的產品,使用Eureka作為服務註冊中心,在測試環境時執行正常,但是部署到生產環境時出現Connection Refuse異常,檢查發現服務從Eureka拿到的服務列表的服務地址不可用。

整個產品使用Docker容器部署,並通過Docker Compose進行容器編排,服務註冊預設註冊地址是容器內部的地址,由於測試環境時單臺伺服器,所有沒有出現問題。生產環境是多臺伺服器分散式部署,就會出現這個問題,可以通過配置服務例項註冊IP地址解決這個問題。

配置如下:

# 指定服務註冊的宿主ip
eureka.instance.ip-address=192.168.1.1
# 配置註冊時使用ip而不是主機名
eureka.instance.prefer-ip-address=true

同時,如果一個微服務需要多接點部署時,需保證Instance ID唯一,否則僅有一個節點註冊成功。

配置項如下:

# 制定instance-id的生成策略,按實際調整,確保每個服務唯一即可。
eureka.instance.instance-id=${spring.application.name}:${server.port}:${random.int}

相關文章