Spring Cloud啟動應用時指定IP或忽略某張網卡配置
說明:分布式應用部署到服務上,由於服務器可能存在多張網卡,造成IP地址不準的問題。
解決方法:
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
3、除了這些配置,還有以下的這些配置:
spring.cloud.inetutils.default-hostname spring.cloud.inetutils.default-ip-address spring.cloud.inetutils.ignored-interfaces spring.cloud.inetutils.preferred-networks spring.cloud.inetutils.timeout-seconds spring.cloud.inetutils.use-only-site-local-interfaces
ignored-interfaces和preferred-networks這兩個配置。這兩個配置決定了spring cloud應用在啟動的時候所使用的網卡和IP地址。ignored-interfaces接收一個正則表達式數組,配置名字雖然是ignored-interfaces,忽略的網卡,但是因為其接收的是正則表達式,所以我們可以任意的選擇和反選本機的網卡。preferred-networks是指傾向於使用的IP地址,接收一個正則表達式數組,用於選擇Spring Cloud應用使用的本機的IP地址。通過這兩個配置,我們可以任意指定Spring Cloud應用使用的網卡和IP地址。
更多解釋參考官方說明,spring-cloud-commons項目為Spring Cloud生態提供了頂層的抽象和基礎設施的實現。 網絡這個最基本的基礎設施也是在這裏有對應的實現:InetUtils、InetUtilsProperties和UtilAutoConfiguration提供了網絡配置相關的功能。
參考:
http://blog.csdn.net/neosmith/article/details/53126924
https://www.jianshu.com/p/90ec946293ee
http://blog.csdn.net/xichenguan/article/details/76557065
http://blog.csdn.net/tony308001970/article/details/75061217
https://github.com/spring-cloud/spring-cloud-commons/blob/master/docs/src/main/asciidoc/spring-cloud-commons.adoc
Spring Cloud啟動應用時指定IP或忽略某張網卡配置