最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring cloud consul使用ip注冊服務(wù)的方法示例

 更新時間:2019年03月15日 11:34:19   作者:流浪的神明  
這篇文章主要介紹了spring cloud consul使用ip注冊服務(wù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

我測試spring cliud使用consul作為注冊中心的時候,發(fā)現(xiàn)服務(wù)注冊的時候,注冊的都是hostname,比如:

注冊了一個commonservice,在consul中是這樣的:

{
  "ID":"commonservice123",
  "address":"testcommonserver"
  ........
}

這肯定是不對的。

加入我有一個服務(wù)payservice需要調(diào)用commonservice,payservice從consul中獲取的commonservice的地址是testcommonserver,而payservice所在的服務(wù)器地址是121.57.68.98上,這臺服務(wù)器無法解析hostname是testcommonserver的服務(wù)器的ip地址,無法調(diào)用commonservie,這時候就會報下面這個錯誤:

unKnownHostException
.......

為了解決這個問題,我需要在注冊服務(wù)的時候,讓服務(wù)以ip的方式注冊,我的測試環(huán)境是:

  • spring cloud Finch1ey.SR2
  • consul v1.4.3

修改bootstrap.yml配置文件:

spring:
 cloud:
  consul:
   host: xxx.xxx.xxx.xxxx
   port: 8500
   discovery:
    prefer-ip-address: true //這個必須配
    tags: version=1.0
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}
    healthCheckInterval: 15s
    health-check-url: http://${spring.cloud.client.ip-address}:${server.port}/actuator/health

${spring.cloud.client.ip-address}這個屬性是spring cloud內(nèi)置,用來獲取ip,不同的spring cloud版本可能稍有不同,如果想要確定自己的版本是什么樣的,可以查看這個文件:

HostInfoEnvironmentPostProcessor

  @Override
  public void postProcessEnvironment(ConfigurableEnvironment environment,
      SpringApplication application) {
    InetUtils.HostInfo hostInfo = getFirstNonLoopbackHostInfo(environment);
    LinkedHashMap<String, Object> map = new LinkedHashMap<>();
    map.put("spring.cloud.client.hostname", hostInfo.getHostname());
    map.put("spring.cloud.client.ip-address", hostInfo.getIpAddress());
    MapPropertySource propertySource = new MapPropertySource(
        "springCloudClientHostInfo", map);
    environment.getPropertySources().addLast(propertySource);
  }

這時候再啟動項(xiàng)目測試,發(fā)現(xiàn)注冊地址變了:

{
  "ID":"commonservice123",
  "address":"10.52.xx.xx"
  ........
}

注冊的address變成了服務(wù)的內(nèi)網(wǎng)地址,如果其它服務(wù)和commonservice在同一個網(wǎng)絡(luò)中,可以通過內(nèi)網(wǎng)訪問,這樣也是可以的,但是如果內(nèi)網(wǎng)不能訪問,其它服務(wù)仍然不能訪問,這時候就需要注冊服務(wù)的時候以公網(wǎng)的ip注冊才行。
修改bootstrap.yml配置文件:

spring:
 cloud:
  consul:
   host: xxx.xxx.xxx.xxx
   port: 8500
   config:
    data-key: data
    format: yaml
   discovery:
    prefer-ip-address: true //這個必須配
    tags: version=1.0
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}
    healthCheckInterval: 15s
    health-check-url: http://${spring.cloud.client.ip-address}:${server.port}/actuator/health
  inetutils:
   preferred-networks:
    - 公網(wǎng)ip1
    - 公網(wǎng)ip2

可以看到增加一個inetutils配置,這個配置是spring cloud的網(wǎng)絡(luò)工具類,這個配置的含義是如果獲取ip時獲取到多個ip(內(nèi)網(wǎng)、外網(wǎng)),就優(yōu)先選擇我配置的ip中存在的ip,這樣再測試就會發(fā)現(xiàn),注冊service的時候就變成了公網(wǎng)ip。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中HashMap的七種遍歷方式小結(jié)

    java中HashMap的七種遍歷方式小結(jié)

    本文主要介紹了java中HashMap的七種遍歷方式小結(jié),包括迭代器,For Each,Lambda,Streams API等,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • transactionAttributes各屬性意義及配置

    transactionAttributes各屬性意義及配置

    這篇文章主要介紹了transactionAttributes各屬性意義及配置,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • java中VO PO DTO POJO BO DO對象的應(yīng)用場景及使用方式

    java中VO PO DTO POJO BO DO對象的應(yīng)用場景及使用

    文章介紹了Java開發(fā)中常用的幾種對象類型及其應(yīng)用場景,包括VO、PO、DTO、POJO、BO和DO等,并通過示例說明了它們在不同場景下的應(yīng)用
    2025-01-01
  • Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼

    Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼

    本文主要介紹了Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 詳解servlet調(diào)用的幾種簡單方式總結(jié)

    詳解servlet調(diào)用的幾種簡單方式總結(jié)

    這篇文章主要介紹了詳解servlet調(diào)用的幾種簡單方式總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • springboot @WebFilter注解過濾器的實(shí)現(xiàn)

    springboot @WebFilter注解過濾器的實(shí)現(xiàn)

    這篇文章主要介紹了springboot @WebFilter注解過濾器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 使用mybatis的typeHandler對clob進(jìn)行流讀寫方式

    使用mybatis的typeHandler對clob進(jìn)行流讀寫方式

    這篇文章主要介紹了使用mybatis的typeHandler對clob進(jìn)行流讀寫方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java設(shè)置session超時的幾種方式總結(jié)

    Java設(shè)置session超時的幾種方式總結(jié)

    這篇文章主要介紹了Java設(shè)置session超時的幾種方式總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 簡單聊聊RabbitMQ中的隊(duì)頭阻塞問題

    簡單聊聊RabbitMQ中的隊(duì)頭阻塞問題

    這篇文章主要為大家詳細(xì)介紹了RabbitMQ中的隊(duì)頭阻塞問題以及相關(guān)的解決方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • SpringBoot超詳細(xì)分析啟動流程

    SpringBoot超詳細(xì)分析啟動流程

    今天小編就為大家分享一篇關(guān)于SpringBoot整個啟動過程的分析,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2022-07-07

最新評論

黎城县| 镇雄县| 盱眙县| 宜君县| 乡宁县| 临洮县| 盐亭县| 车险| 双牌县| 大冶市| 夏津县| 常德市| 临漳县| 资阳市| 衢州市| 漯河市| 噶尔县| 九龙坡区| 明水县| 开江县| 扬中市| 永州市| 泾川县| 阜城县| 桦南县| 鄂温| 遂昌县| 苏尼特左旗| 东莞市| 莆田市| 资兴市| 东海县| 辽阳市| 鲜城| 谢通门县| 清河县| 宜兰县| 宜良县| 涿鹿县| 黔江区| 原阳县|