日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

零基础带你快速入门consul-难道consul还能这样用?

發布時間:2024/10/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零基础带你快速入门consul-难道consul还能这样用? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、consul的下載安裝
  • 二、框架搭建
    • 1、創建父工程
    • 2、創建服務提供子模塊(provider-consul-module)
    • 3、創建服務消費子模塊(consumer-consul-module)
  • 二、代碼準備
    • 1、父工程pom
    • 2、服務提供子模塊pom
    • 3、消費服務子模塊pom
    • 4、提供服務模塊和消費模塊服務模塊啟動類
    • 5、提供服務模塊和消費模塊服務模塊application.yml文件
    • 6、提供服務模塊和消費模塊服務模塊controller代碼
    • 7、RestTemplate詳解及其配置
  • 三、測試
  • 四、靈魂拷問?為什么需要注冊中心


一、consul的下載安裝

consul的下載地址:https://www.consul.io/downloads


解壓之后

在該路徑下以cmd的方式打開
然后啟動

consul agent -dev



二、框架搭建

1、創建父工程



刪除src目錄

2、創建服務提供子模塊(provider-consul-module)


3、創建服務消費子模塊(consumer-consul-module)







二、代碼準備

1、父工程pom

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cloud</groupId><artifactId>springcloud_all</artifactId><version>1.0-SNAPSHOT</version><modules><module>provider-consul-module</module><module>consumer-consul-module</module></modules><packaging>pom</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><junit.version>4.13</junit.version><log4j.version>1.2.17</log4j.version><lombok.version>1.16.18</lombok.version><mysql.version>8.0.19</mysql.version><druid.version>1.2.4</druid.version><mybatis.spring.boot.version>2.1.4</mybatis.spring.boot.version><druid.spring.boot.version>1.2.4</druid.spring.boot.version><springfox-swagger-ui.version>2.9.2</springfox-swagger-ui.version><springfox-swagger2.version>2.9.2</springfox-swagger2.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.4.3</version><type>pom</type><scope>import</scope></dependency><!-- spring-cloud 2020.0.2--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2020.0.2</version><type>pom</type><scope>import</scope></dependency><!-- spring-cloud alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.spring.boot.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${springfox-swagger-ui.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${springfox-swagger2.version}</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork><addResources>true</addResources></configuration></plugin></plugins></build> </project>

2、服務提供子模塊pom

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud_all</artifactId><groupId>com.cloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.provider</groupId><artifactId>provider-consul-module</artifactId><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-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies> </project>

3、消費服務子模塊pom

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud_all</artifactId><groupId>com.cloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.consumer</groupId><artifactId>consumer-consul-module</artifactId><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-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies> </project>

4、提供服務模塊和消費模塊服務模塊啟動類

@SpringBootApplication @EnableDiscoveryClient public class ConsulProviderApplication {public static void main(String[] args) {SpringApplication.run(ConsulProviderApplication.class, args);} } @SpringBootApplication @EnableDiscoveryClient public class ConsulConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsulConsumerApplication.class, args);} }

@EnableDiscoveryClient注解的作用:能夠讓注冊中心能夠發現,掃描到微服務。

5、提供服務模塊和消費模塊服務模塊application.yml文件

server:port: 8006 spring:cloud:consul:host: 127.0.0.1port: 8500discovery:service-name: ${spring.application.name}application:name: provider-consul-module server:port: 80 spring:application:name: consumer-consul-modulecloud:consul:host: 127.0.0.1port: 8500discovery:service-name: ${spring.application.name}

6、提供服務模塊和消費模塊服務模塊controller代碼

@RestController @Slf4j public class ProviderConsulController {@Value("${server.port}")private String serverPort;@GetMapping(value = "/provider/test")public String test() {return "提供服務模塊服務端口號為:" + serverPort + "《--------------》" + UUID.randomUUID().toString();} } @RestController public class ConsumerConsulController {private static final String INVOKE_URL = "http://provider-consul-module";@Resourceprivate RestTemplate restTemplate;@GetMapping(value = "/consumer/test")public String getData() {return restTemplate.getForObject(INVOKE_URL + "/provider/test", String.class);} }

7、RestTemplate詳解及其配置

RestTemplate是spring封裝的一個服務端遠程HTTP請求工具,支持常見的Rest請求(get、post等)
簡單了說就是用來遠程調用的,因為你訂單模塊是一個服務,消費模塊又是一個單獨的服務,兩個服務端的端口號要進行交互,所以就有了RestTemplate

當然要注入RestTemplate(注意是在消費模塊配置,因為是消費服務調用提供服務模塊)

@Configuration public class ApplicationContextConfig {@Bean@LoadBalancedpublic RestTemplate AutoRestTemplate() {return new RestTemplate();} }

三、測試

啟動提供服務模塊和消費服務模塊(注意一定要開啟zookeeper服務,順便進入zookeeper客戶端)

訪問http://localhost:8500,你可以看到consul的客戶端界面(然后我們啟動的兩個服務已經成功注冊進consul)

接口測試

成功!



四、靈魂拷問?為什么需要注冊中心

我們在微服務中首先需要面對的問題是服務之間如何進行通信呢?在單體架構中,我們只要將服務的接口暴露,然后通過http請求即可,微服務當然也可以這樣。
問題是我們請求的url是固定的,單體服務為我們還可以很快的修改;一旦有大量的服務那就需要我們手動維護服務接口,配置負載均衡;服務宕機后,如何及時下線呢?
總而言之注冊中心必不可少(至少當前時代是這樣)。

總結

以上是生活随笔為你收集整理的零基础带你快速入门consul-难道consul还能这样用?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产免费麻豆 | 精品国产免费一区二区三区 | 91色在线| 一区在线看 | 国产伦精品一区二区三区妓女下载 | 黄色网址在线免费看 | 欧美黄色性 | 国产四区视频 | 青青青青草 | 久久精品一二区 | 四虎婷婷 | 毛片视屏 | 一区二区视频播放 | 91久久国产综合久久 | 日韩美一区二区三区 | 无码国产伦一区二区三区视频 | 成人91免费视频 | 精品国产成人av在线免 | 日韩在线播放一区二区 | 日本三级视频在线 | 淫片一级国产 | jizz中国少妇高潮出水 | 亚洲精品一区二区在线 | 亚洲91久久 | 噼里啪啦高清 | 婷婷丁香九月 | 国产精品高潮呻吟久久 | 国产精品视频合集 | 黄色片网站免费观看 | 亚洲熟妇无码av在线播放 | 国产亚洲一区二区三区 | 国产精品亚洲视频 | 日韩国产高清在线 | 日韩精品不卡 | 91精品系列 | 欧美日韩精品一区二区三区四区 | 欧美日韩色 | 国产99在线播放 | 国产成人精品在线视频 | ww黄色| 91网址在线 | 国产最新在线观看 | 日本伦理在线 | 久色亚洲| 亚洲少妇中文字幕 | 中国女人毛片 | 强侵犯の奶水授乳羞羞漫虐 | 特级一级黄色片 | 午夜宫| 999这里有精品 | 色月婷婷| 天天躁夜夜躁 | 五月在线视频 | 欧美三级韩国三级日本三斤在线观看 | 亚洲永久免费网站 | 熟女少妇内射日韩亚洲 | 二级毛片在线观看 | 91超碰在| 百合sm惩罚室羞辱调教 | 久久国产网站 | 精品人妻久久久久一区二区三区 | 久久综合伊人77777麻豆最新章节 | 亚洲永久免费av | 日本大乳美女 | 欧美乱妇一区二区三区 | 看日本毛片 | 中文字幕av久久爽 | 欧美第一视频 | 好看的av网址 | 欧美性爱精品一区 | 天天看天天射 | 欧美最猛性xxxxx(亚洲精品) | 中文字幕+乱码+中文字幕一区 | 九色婷婷| 成人免费一级片 | 国产高潮白浆 | 伊人激情 | 草草影院地址 | 黄色网址在线免费看 | 国产精品1024 | 精品一区在线观看视频 | 国产黄色片视频 | 岛国av一区二区 | 国产精品自产拍在线观看 | 豆花在线视频 | 国产免费aa| 日韩欧av| 亚洲av无码久久忘忧草 | 免费观看国产精品视频 | 色老板精品凹凸在线视频观看 | 91你懂的| 青青操免费 | 人人艹视频 | 在线观看欧美一区 | 人人玩人人弄 | 精品国产乱码久久久久久1区2区 | 熟妇高潮一区二区三区 | 免费成人小视频 | a在线看 |