真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloudEureka如何配置多網(wǎng)卡-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關SpringCloud Eureka如何配置多網(wǎng)卡,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

鄂倫春ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

如果沒有針對多網(wǎng)卡做特別的配置的話,上面看到的192.168.239.1:8080和其鏈接的URL地址多半不是一個字符串;

我們在配置Eureka Client的時候想要實現(xiàn)的效果是:上面顯示192.168.239.1:8080的地方,顯示IP地址和端口號,其URL地址的host和port與這里顯示的IP地址和端口號一致。同時在多網(wǎng)卡的情況下,我們可以任意選擇Spring Cloud App想要使用的網(wǎng)卡。

Spring Cloud 網(wǎng)卡選擇一文中,給出了一個多網(wǎng)卡配置的解決方案:

spring.cloud.inetutils.preferred-networks: 192.168.239.
eureka.instance.prefer-ip-address:true

通過設置這兩個屬性,URL地址的host的值就是我們想要的IP地址了。 
通過查看spring-cloud-netflix-eureka-server包下面的status.ftl文件,發(fā)現(xiàn)顯示的文本是instance的id。

<#list instanceInfo.instances as instance>
 <#if instance.isHref>
  ${instance.id}
 <#else>
  ${instance.id}
 <#if instance_has_next>,


所以我們只要給instance-id賦值為ip:port就行了:

eureka.instance.instance-id:${spring.cloud.client.ipAddress}:${server.port}
1
spring.cloud.client.ipAddress這個是怎么來的呢?看下HostInfoEnvironmentPostProcessor這個類,這個類是EnvironmentPostProcessor接口的實現(xiàn):

@Override www.1b23.com
  public void postProcessEnvironment(ConfigurableEnvironment environment,
      SpringApplication application) {
    InetUtils.HostInfo hostInfo = getFirstNonLoopbackHostInfo(environment);
    LinkedHashMap map = new LinkedHashMap<>();
    map.put("spring.cloud.client.hostname", hostInfo.getHostname());
    map.put("spring.cloud.client.ipAddress", hostInfo.getIpAddress());
    MapPropertySource propertySource = new MapPropertySource(
        "springCloudClientHostInfo", map);
    environment.getPropertySources().addLast(propertySource);
  }

這時候問題來了,如果這么設置,會發(fā)現(xiàn)顯示的內(nèi)容和其鏈接地址不一樣,通過調(diào)成程序發(fā)現(xiàn),顯示的時候的host和port和連接地址里的host和port雖然都是通過InetUtils獲取的,但是執(zhí)行的時間點不一樣,執(zhí)行的時候的上下文信息不一樣。

首先HostInfoEnvironmentPostProcessor的執(zhí)行時間點可以參看Spring Boot # EnvironmentPostProcessor,雖然我們配置了spring.cloud.inetutils.preferred-networks: 192.168.239.,但是此時這個application.xml文件的內(nèi)容還沒被加載,HostInfoEnvironmentPostProcessor在執(zhí)行的時候,上下文里就沒有這個配置,所以在執(zhí)行:

InetUtils.HostInfo hostInfo = getFirstNonLoopbackHostInfo(environment);
1
時候,environment中沒有spring.cloud.inetutils.preferred-networks: 192.168.239.這個配置。

EurekaClientAutoConfiguration中的eurekaInstanceConfigBean方法會構造并返回一個EurekaInstanceConfigBean,EurekaInstanceConfigBean的構造方法如下:

public EurekaInstanceConfigBean(InetUtils inetUtils) {
    this.inetUtils = inetUtils;
    this.hostInfo = this.inetUtils.findFirstNonLoopbackHostInfo();
    this.ipAddress = this.hostInfo.getIpAddress();
    this.hostname = this.hostInfo.getHostname();
  }

在這個時間點,application.yml中的配置已經(jīng)加載,spring boot的配置文件在容器創(chuàng)建之前就全加載完了,具體參看Spring Boot # EnvironmentPostProcessor,spring.cloud.inetutils.preferred-networks: 192.168.239.的信息已經(jīng)有了,所以此配置就會生效,從而選擇出可能跟之前不一樣的IP地址。

結論
eureka設置
eureka.instance.prefer-ip-address: true
eureka.instance.instance-id: ${spring.cloud.client.ipAddress}:${server.port}

spring.cloud.inetutils.preferred-networks設置
將spring.cloud.inetutils.preferred-networks的配置從application.yml文件移到外部,jar命令-Dspring.cloud.inetutils.preferred-networks: 192.168.239.覆蓋或者設置在系統(tǒng)的環(huán)境變量里。用dockerfile或者docker compose就更方便了。

關于“SpringCloud Eureka如何配置多網(wǎng)卡”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


文章題目:SpringCloudEureka如何配置多網(wǎng)卡-創(chuàng)新互聯(lián)
URL標題:http://weahome.cn/article/dohghs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部