在服务器上部署微服务的时候,框架是eureka,feign,zuul2等,出现一下错误信息:
Caused by: feign.RetryableException: Connection refused (Connection refused) executing GET http://xxx-server/api/v1/cunchu/bucket/exist?bame=server-abc
搜索网上教程:
https://github.com/spring-cloud/spring-cloud-netflix/issues/730
说是这样配置:
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
eureka.instance.hostname=${spring.cloud.client.ip-address}
但是,配置了下,还是没有效果,同事最终找了半天,发现是服务器多网卡的问题,网卡绑定的ip不能寻找到服务了
spring.cloud.inetutils.ignored-interfaces=eth0
这样屏蔽掉不需要的网卡,问题解决了。
多网卡配置的相关知识:
1、直接添加忽略某张网卡的配置:
spring.cloud.inetutils.ignored-interfaces[0]=eth0 # 忽略eth0, 支持正则表达式
正则:
spring.cloud.inetutils.ignored-interfaces=eth.*
2、指定默认IP:
spring.cloud.inetutils.preferred-networks=192.168.20.123 #可以是IP段:192.168.20
ignored-interfaces和preferred-networks这两个配置。这两个配置决定了spring cloud应用在启动的时候所使用的网卡和IP地址。ignored-interfaces接收一个正则表达式数组,配置名字虽然是ignored-interfaces,忽略的网卡,但是因为其接收的是正则表达式,所以我们可以任意的选择和反选本机的网卡。preferred-networks是指倾向于使用的IP地址,接收一个正则表达式数组,用于选择Spring Cloud应用使用的本机的IP地址。