在linux主机部署Eureka高可用方案的时候,发现注册到服务中心的服务IP是随机的,因为主机的网卡是多个,随机的IP并非本身想要的,上网查了一些资料,总结以下:java
#忽略eth0, 支持正则表达式 spring.cloud.inetutils.ignored-interfaces[0]=eth0
#preferred-networks是指倾向于使用的IP地址,接收一个正则表达式数组,用于选择Spring Cloud应用使用的本机的IP地址。 spring.cloud.inetutils.preferredNetworks[0]=^192\.168
当网查遍历逻辑都没有找到合适ip时会走JDK的InetAddress.getLocalHost()。该方法会返回当前主机的hostname, 而后会根据hostname解析出对应的ip。所以第二种方案就是配置本机的hostname和/etc/hosts文件,直接将本机的主机名映射到有效IP地址。
#指定此实例的ip eureka.instance.ip-address= #注册时使用ip而不是主机名 eureka.instance.prefer-ip-address=true
java -jar xxx.jar --spring.cloud.inetutils.preferred-networks= #须要设置的IP地址 或者 java -jar xxx.jar --spring.cloud.inetutils.ignored-interfaces= #须要过滤掉的网卡
以上新手折腾了一下午,你们有好方法一块儿交流一下linux