Nacos跨服務器調用服務報錯

利用gateway做springcloud微服務網關路由服務時出現報錯情況,發現是和網關不在一個服務器的服務無法使用

Nacos服務註冊的IP
Nacos註冊中心是: https://github.com/alibaba/nacos
各個服務通過Nacos客戶端將服務信息註冊到Nacos上
當Nacos服務註冊的IP默認選擇出問題時,可以通過查閱對應的客戶端文檔,來選擇配置不同的網卡或者IP

問題場景

利用gateway做路由時出現服務不可用的情況,看日誌發現服務調用的IP是172開頭的網卡段,但是由於是不同的服務器,這個地址是訪問不了的,因此需要修改配置調整網卡的選擇或者指定IP

nacos配置

如果選擇固定Ip註冊可以配置
spring.cloud.nacos.discovery.ip = 10.2.11.11
spring.cloud.nacos.discovery.port = 9090

 如果選擇固定網卡配置項
spring.cloud.nacos.discovery.networkInterface = eth0

#如果想更豐富的選擇,可以使用spring cloud 的工具 InetUtils進行配置
 具體說明可以自行檢索: https://github.com/spring-cloud/spring-cloud-commons/blob/master/docs/src/main/asciidoc/spring-cloud-commons.adoc
spring.cloud.inetutils.default-hostname
spring.cloud.inetutils.default-ip-address
spring.cloud.inetutils.ignored-interfaces[0]=eth0 	# 忽略網卡,eth0
spring.cloud.inetutils.ignored-interfaces=eth.* 	# 忽略網卡,eth.*,正則表達式
spring.cloud.inetutils.preferred-networks=10.34.12 	# 選擇符合前綴的IP作爲服務註冊IP
spring.cloud.inetutils.timeout-seconds
spring.cloud.inetutils.use-only-site-local-interfaces

其他配置

spring.cloud.nacos.discovery.server-addr  #Nacos Server 啓動監聽的ip地址和端口
spring.cloud.nacos.discovery.service  #給當前的服務命名
spring.cloud.nacos.discovery.weight  #取值範圍 1 到 100,數值越大,權重越大
spring.cloud.nacos.discovery.network-interface #當IP未配置時,註冊的IP爲此網卡所對應的IP地址,如果此項也未配置,則默認取第一塊網卡的地址
spring.cloud.nacos.discovery.ip  # 優先級最高
spring.cloud.nacos.discovery.port  # 默認情況下不用配置,會自動探測
spring.cloud.nacos.discovery.namespace # 常用場景之一是不同環境的註冊的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。

spring.cloud.nacos.discovery.access-key  # 當要上阿里雲時,阿里雲上面的一個雲賬號名
spring.cloud.nacos.discovery.secret-key # 當要上阿里雲時,阿里雲上面的一個雲賬號密碼
spring.cloud.nacos.discovery.metadata    #使用Map格式配置,用戶可以根據自己的需要自定義一些和服務相關的元數據信息
spring.cloud.nacos.discovery.log-name   # 日誌文件名
spring.cloud.nacos.discovery.enpoint   # 地域的某個服務的入口域名,通過此域名可以動態地拿到服務端地址
ribbon.nacos.enabled  # 是否集成Ribbon 默認爲true

關注Github:1/2極客

關注博客:御前提筆小書童

關注網站:HuMingfeng

關注公衆號:開發者的花花世界

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