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