在linux主机部署Eureka高可用方案的时候,发现注册到服务中心的服务IP是随机的,由于主机的网卡是多个,随机的IP并不是自己想要的,上网查了一些资料,总结如下:
1 忽略网卡:spring.cloud.inetutils.ignored-interfaces
#忽略eth0, 支持正则表达式spring.cloud.inetutils.ignored-interfaces[0]=eth0
2 指定IP:spring.cloud.inetutils.preferred-networks
#preferred-networks是指倾向于使用的IP地址,接收一个正则表达式数组,用于选择Spring Cloud应用使用的本机的IP地址。spring.cloud.inetutils.preferredNetworks[0]=^192.168
3 修改Host文件
当网查遍历逻辑都没有找到合适ip时会走JDK的InetAddress.getLocalHost()。该方法会返回当前主机的hostname, 然后会根据hostname解析出对应的ip。因此第二种方案就是配置本机的hostname和/etc/hosts文件,直接将本机的主机名映射到有效IP地址。
4 指定实例IP
#指定此实例的ipeureka.instance.ip-address=#注册时使用ip而不是主机名eureka.instance.prefer-ip-address=true
5 通过jar命令参数
java -jar xxx.jar --spring.cloud.inetutils.preferred-networks= #需要设置的IP地址或者java -jar xxx.jar --spring.cloud.inetutils.ignored-interfaces= #需要过滤掉的网卡
以上新手折腾了一下午,大家有好方法一起交流一下,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Spring Cloud构建Eureka应用的方法
- springcloud实现注册中心Eureka
- spring cloud实现Eureka注册中心的HA的方法
- springcloud干货之服务注册与发现(Eureka)
- spring-cloud入门之eureka-client(服务注册)
- spring-cloud入门之eureka-server(服务发现)
- spring cloud将spring boot服务注册到Eureka Server上的方法
- spring cloud中启动Eureka Server的方法
- SpringCloud之服务注册与发现Spring Cloud Eureka实例代码