問題描述
- 再order服務中調用goods的服務(order遠程調用)
- 使用nacos作為注冊中心和配置中心,再使用openfeign作為遠程調用
消費者:server-fish-order
生產者:server-fish-goods
報錯:java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: SERVER-FISH-GOODS
-
意思是ribbon負載均衡器沒有找到為客戶端提供可用的服務器
-
但是在nacos配置中心是可以發現兩個服務都被注冊進來了
解決
-
發現goods模塊在服務名使用了小寫
-
但是在配置@FeignClient()使用了大寫
-
可能是ribbon在進行負載均衡策略的時候沒有辦法找到服務名(區分大小寫)
-
將@FeihnClient()的value屬性更改成和服務名一致,並重啟服務
總結
- 配置@FeihnClient(value="")的value屬性與服務名spring.application.name大小寫一致
- 先重啟生產者server-fish-goods,再重啟消費者server-fish-order