spring cloud gateway報錯java.net.UnknownHostException: 4d59d509898a: Name or service not known


是這樣的,eureka、gateway和普通的微服務在本地是OK的,

部署到docker后,通過gateway訪問某個微服務就報錯了。

用的是serviceId的方式,在eureka界面也能看到各個微服務都是在線的,沒有問題,但就是通過gateway的路由訪問時會報錯。

解決方案如下:

在微服務里加上這個配置:

eureka:
  instance:
    prefer-ip-address: true

然后就OK了

估計是加上后,就把ip注冊到eureka了,不加的話我看過eureka注冊界面,是以docker容器的container id注冊過去的,譬如container id為abcde,那么當訪問該微服務時,eureka以http://abcde/xxx,去訪問的,當然是訪問不到該服務。配置上面的選項后,就會以內網ip加端口去訪問就能訪問到了。

那么為什么在本地環境是可以的呢?因為本地環境是localhost注冊過去的,各個服務都能解析localhost,而docker不行,每一個docker都是獨立的,把docker的container id注冊過去,別的微服務是不認識的。


免責聲明!

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



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