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

SpringBoot + Spring Cloud Consul 服務(wù)注冊(cè)和發(fā)現(xiàn)詳細(xì)解析

 更新時(shí)間:2020年07月23日 10:39:35   作者:歪頭兒在帝都  
這篇文章主要介紹了SpringBoot + Spring Cloud Consul 服務(wù)注冊(cè)和發(fā)現(xiàn),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下


什么是Consul

Consul 是 HashiCorp 公司推出的開(kāi)源工具,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置。與其它分布式服務(wù)注冊(cè)與發(fā)現(xiàn)的方案,Consul 的方案更“一站式”,內(nèi)置了服務(wù)注冊(cè)與發(fā)現(xiàn)框架、分布一致性協(xié)議實(shí)現(xiàn)、健康檢查、Key/Value 存儲(chǔ)、多數(shù)據(jù)中心方案,不再需要依賴其它工具(比如 ZooKeeper 等)。使用起來(lái)也較為簡(jiǎn)單。Consul 使用 Go 語(yǔ)言編寫,因此具有天然可移植性(支持Linux、windows和Mac OS X);安裝包僅包含一個(gè)可執(zhí)行文件,方便部署,與 Docker 等輕量級(jí)容器可無(wú)縫配合。

Consul安裝

官網(wǎng)(consul.io)最新版本1.8.0 提供了MacOS,Windows, Linux, 如果你不知道怎么安裝,官方還提供了視頻。

我這里使用docker安裝,安裝過(guò)程總結(jié)起來(lái)為三句話:

docker search consul
docker pull consul
docker run --name consul -d -p 8600:8500 consul

沒(méi)問(wèn)題的話,本機(jī)訪問(wèn)http://localhost:8600則可以打開(kāi)consul自帶的管理系統(tǒng),默認(rèn)情況下沒(méi)有服務(wù)注冊(cè)進(jìn)來(lái)

  • 準(zhǔn)備工作新建父工程, 主要約定SpringCloud, SpringBoot版本號(hào),我使用的是Hoxton.SR1, SpringBoot2.2
  • 新建3個(gè)子Module,這里兩個(gè)service,一個(gè)consumer, 兩個(gè)service我用8001和8002端口來(lái)區(qū)分,主要是想在服務(wù)消費(fèi)時(shí)反應(yīng)客戶端負(fù)載均衡。

項(xiàng)目結(jié)構(gòu)如下圖

父工程pom.xml

<dependencyManagement>
 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-dependencies</artifactId>
 <version>2.2.2.RELEASE</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-dependencies</artifactId>
 <version>Hoxton.SR1</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
 </dependencyManagement>

服務(wù)提供者

服務(wù)注冊(cè)中心有了,那么我們來(lái)開(kāi)發(fā)兩個(gè)服務(wù)提供者,這里新建了兩個(gè)Module,端口8001和8002。兩個(gè)Module代碼相同,主要為了演示負(fù)載使用。

新建Module,添加spring-cloud-starter-consul-disconvery依賴

pom.xml

 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-consul-discovery</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 </dependency>
 </dependencies>

添加配置(application.yml)

server:
 port: 8001
spring:
 application:
 name: consul-student-service
 cloud:
 consul:
 port: 8600
 host: 127.0.0.1
 discovery:
 service-name: ${spring.application.name}

修改啟動(dòng)類,添加服務(wù)

這里我直接寫了一個(gè)測(cè)試接口放在啟動(dòng)類里。這里我只貼了端口8001的代碼,8002代碼結(jié)構(gòu)相同,只是端口不同。

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ConsulStudentService8001 {

 public static void main(String[] args) {
 SpringApplication.run(ConsulStudentService8001.class,args);
 }

 @GetMapping("/student/version")
 public String version(){
 return "8001,202007222300";
 }
}

OK,到這一步,啟動(dòng)兩個(gè)服務(wù),不出異常的情況下,可在注冊(cè)中心查看當(dāng)前的服務(wù)實(shí)例。



Consul消費(fèi)者

服務(wù)注冊(cè)中心有了,服務(wù)提供者也有了,我們?cè)賮?lái)開(kāi)發(fā)一個(gè)服務(wù)消費(fèi)者。

新建Module,同樣添加spring-cloud-starter-consul-disconvery依賴

pom.xml

<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-consul-discovery</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 </dependency>
 </dependencies>

添加配置(application.yml)

server:
 port: 8080

spring:
 application:
 name: consul-student-consumer
 cloud:
 consul:
 host: 127.0.0.1
 port: 8600
 discovery:
 service-name: ${spring.application.name}
 # 不需要注冊(cè)到consul中
 register: false

修改啟動(dòng)類,調(diào)用服務(wù)

開(kāi)發(fā)RestTemplate配置類,調(diào)用REST接口時(shí)使用。

@Configuration
public class ApplicationContextConfig {

 @Bean
 @LoadBalanced
 public RestTemplate restTemplate(){
 return new RestTemplate();
 }
}

修改啟動(dòng)類

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class ConsulStudentConsumer {

 public static void main(String[] args) {
 SpringApplication.run(ConsulStudentConsumer.class,args);
 }

 @Autowired
 RestTemplate restTemplate;

 @GetMapping("/consul/student/version")
 public String version(){
 //這里使用服務(wù)實(shí)例名調(diào)用REST接口
 return restTemplate.getForObject("http://consul-student-service/student/version",String.class);
 }
}

OK, 這一步完成之后,可以啟動(dòng)消費(fèi)者接口,刷新幾次,從返回結(jié)果上能看出來(lái)是輪訓(xùn)調(diào)用服務(wù)提供者接口實(shí)例。

到此這篇關(guān)于SpringBoot + Spring Cloud Consul 服務(wù)注冊(cè)和發(fā)現(xiàn)詳細(xì)解析的文章就介紹到這了,更多相關(guān)SpringBoot Spring Cloud Consul 服務(wù)注冊(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的string類為什么是不可變的

    Java的string類為什么是不可變的

    這篇文章主要介紹了Java的string類為什么是不可變的,總結(jié)了三個(gè)答案,需要的朋友可以參考下
    2014-04-04
  • 深入理解spring如何管理事務(wù)

    深入理解spring如何管理事務(wù)

    文章詳細(xì)介紹了Spring框架中的事務(wù)管理機(jī)制,包括事務(wù)的基本概念、事務(wù)管理的兩種方式、Spring事務(wù)管理的整體架構(gòu)、事務(wù)配置、聲明式事務(wù)的實(shí)現(xiàn)原理、事務(wù)的關(guān)鍵流程、事務(wù)屬性與配置,以及實(shí)際開(kāi)發(fā)中常見(jiàn)的事務(wù)問(wèn)題和解決方案,感興趣的朋友一起看看吧
    2025-01-01
  • java多線程:基礎(chǔ)詳解

    java多線程:基礎(chǔ)詳解

    這篇文章主要介紹了java多線程編程實(shí)例,分享了幾則多線程的實(shí)例代碼,具有一定參考價(jià)值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下。
    2021-08-08
  • Spring Boot Logging Level設(shè)置為off時(shí)的Bug

    Spring Boot Logging Level設(shè)置為off時(shí)的Bug

    這篇文章主要介紹了Spring Boot Logging Level設(shè)置為off時(shí)的Bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot2.X整合prometheus監(jiān)控的實(shí)例講解

    springboot2.X整合prometheus監(jiān)控的實(shí)例講解

    這篇文章主要介紹了springboot2.X整合prometheus監(jiān)控的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Java 通過(guò)JDBC連接Mysql數(shù)據(jù)庫(kù)

    Java 通過(guò)JDBC連接Mysql數(shù)據(jù)庫(kù)

    本文給大家詳細(xì)介紹了java如何使用JDBC連接Mysql的方法以及驅(qū)動(dòng)包的安裝,最后給大家附上了java通過(guò)JDBC連接其他各種數(shù)據(jù)庫(kù)的方法,有需要的小伙伴可以參考下。
    2015-11-11
  • 關(guān)于mybatis遇到Integer類型的參數(shù)時(shí)動(dòng)態(tài)sql需要注意條件

    關(guān)于mybatis遇到Integer類型的參數(shù)時(shí)動(dòng)態(tài)sql需要注意條件

    這篇文章主要介紹了關(guān)于mybatis遇到Integer類型的參數(shù)時(shí)動(dòng)態(tài)sql需要注意條件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring初始化和銷毀的實(shí)現(xiàn)方法

    Spring初始化和銷毀的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring初始化和銷毀的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java中輸出字符的ASCII值實(shí)例

    Java中輸出字符的ASCII值實(shí)例

    這篇文章主要介紹了Java中輸出字符的ASCII值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java中List集合的常用方法詳解

    Java中List集合的常用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中List集合的常用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論

澳门| 康乐县| 康乐县| 新干县| 巴塘县| 印江| 简阳市| 塘沽区| 龙游县| 中西区| 扎赉特旗| 长沙市| 嘉黎县| 通辽市| 会宁县| 米泉市| 陆川县| 天津市| 韩城市| 德江县| 东至县| 龙海市| 读书| 都兰县| 商河县| 肃宁县| 碌曲县| 华安县| 竹北市| 沭阳县| 中宁县| 庆安县| 资溪县| 奈曼旗| 全南县| 麻江县| 三原县| 来凤县| 惠水县| 东兰县| 灵川县|