在linux主機部署eureka高可用方案的時候,發(fā)現(xiàn)注冊到服務(wù)中心的服務(wù)ip是隨機的,由于主機的網(wǎng)卡是多個,隨機的ip并不是自己想要的,上網(wǎng)查了一些資料,總結(jié)如下:
1 忽略網(wǎng)卡:spring.cloud.inetutils.ignored-interfaces
1
2
|
#忽略eth0, 支持正則表達式 spring.cloud.inetutils.ignored-interfaces[ 0 ]=eth0 |
2 指定ip:spring.cloud.inetutils.preferred-networks
1
2
|
#preferred-networks是指傾向于使用的ip地址,接收一個正則表達式數(shù)組,用于選擇spring cloud應(yīng)用使用的本機的ip地址。 spring.cloud.inetutils.preferrednetworks[ 0 ]=^ 192 \. 168 |
3 修改host文件
當網(wǎng)查遍歷邏輯都沒有找到合適ip時會走jdk的inetaddress.getlocalhost()。該方法會返回當前主機的hostname, 然后會根據(jù)hostname解析出對應(yīng)的ip。因此第二種方案就是配置本機的hostname和/etc/hosts文件,直接將本機的主機名映射到有效ip地址。
4 指定實例ip
1
2
3
4
|
#指定此實例的ip eureka.instance.ip-address= #注冊時使用ip而不是主機名 eureka.instance.prefer-ip-address= true |
5 通過jar命令參數(shù)
1
2
3
|
java -jar xxx.jar --spring.cloud.inetutils.preferred-networks= #需要設(shè)置的ip地址 或者 java -jar xxx.jar --spring.cloud.inetutils.ignored-interfaces= #需要過濾掉的網(wǎng)卡 |
以上新手折騰了一下午,大家有好方法一起交流一下,希望對大家的學習有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://segmentfault.com/a/1190000014140524