欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring cloud consul使用ip注冊服務的方法示例

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

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

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

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

這肯定是不對的。

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

unKnownHostException
.......

為了解決這個問題,我需要在注冊服務的時候,讓服務以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內置,用來獲取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);
  }

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

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

注冊的address變成了服務的內網地址,如果其它服務和commonservice在同一個網絡中,可以通過內網訪問,這樣也是可以的,但是如果內網不能訪問,其它服務仍然不能訪問,這時候就需要注冊服務的時候以公網的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:
    - 公網ip1
    - 公網ip2

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java中的HashMap內存泄漏問題詳解

    Java中的HashMap內存泄漏問題詳解

    這篇文章主要介紹了Java中的HashMap內存泄漏問題詳解,WeakHashMap中的key是弱引用,如果再使用之后沒有及時remove掉這個key,那么當GC時key就可能會被回收,導致key對應的value對象占用的內存無法回收進而導致內存泄漏,需要的朋友可以參考下
    2023-09-09
  • Java基于Socket實現(xiàn)多人聊天室

    Java基于Socket實現(xiàn)多人聊天室

    這篇文章主要為大家詳細介紹了Java基于Socket實現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • SpringBoot開發(fā)技巧之如何處理跨域請求CORS

    SpringBoot開發(fā)技巧之如何處理跨域請求CORS

    CORS(Cross-Origin Resource Sharing)"跨域資源共享",是一個W3C標準,它允許瀏覽器向跨域服務器發(fā)送Ajax請求,打破了Ajax只能訪問本站內的資源限制
    2021-10-10
  • SpringBoot+Redis實現(xiàn)后端接口防重復提交校驗的示例

    SpringBoot+Redis實現(xiàn)后端接口防重復提交校驗的示例

    本文將結合實例代碼,介紹SpringBoot+Redis實現(xiàn)后端接口防重復提交校驗的示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java使用modbus-master-tcp實現(xiàn)modbus tcp通訊

    Java使用modbus-master-tcp實現(xiàn)modbus tcp通訊

    這篇文章主要為大家詳細介紹了另外一種Java語言的modbux tcp通訊方案,那就是modbus-master-tcp,文中的示例代碼講解詳細,需要的可以了解下
    2023-12-12
  • Spring?Cloud?oauth2?認證服務搭建過程示例

    Spring?Cloud?oauth2?認證服務搭建過程示例

    這篇文章主要為大家介紹了Spring?Cloud?oauth2?認證服務搭建過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 2022最新Java泛型詳解(360度無死角介紹)

    2022最新Java泛型詳解(360度無死角介紹)

    Java泛型(generics)是JDK5中引入的一個新特性,泛型提供了 編譯時類型安全監(jiān)測機制,該機制允許我們在編譯時檢測到非法的類型數(shù)據(jù)結構,這篇文章主要介紹了java泛型的基本概念及使用詳解,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • 精致小巧的java相冊制作方法

    精致小巧的java相冊制作方法

    這篇文章主要為大家詳細介紹了精致小巧的java相冊制作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Springboot結合Flowable實現(xiàn)工作流開發(fā)

    Springboot結合Flowable實現(xiàn)工作流開發(fā)

    本文主要介紹了Springboot結合Flowable實現(xiàn)工作流開發(fā),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • List集合對象中按照不同屬性大小排序的實例

    List集合對象中按照不同屬性大小排序的實例

    下面小編就為大家?guī)硪黄狶ist集合對象中按照不同屬性大小排序的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論