一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - SpringCloud Bus 消息總線的具體使用

SpringCloud Bus 消息總線的具體使用

2021-06-22 13:30郭鵬飛 Java教程

這篇文章主要介紹了SpringCloud Bus 消息總線的具體使用,詳細(xì)的介紹了什么是消息總線以及具體配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

什么是消息總線

1. 概念

在微服務(wù)架構(gòu)中,通常會使用輕量級的消息代理來構(gòu)建一個(gè)共用的消息主題來連接各個(gè)微服務(wù)實(shí)例, 它廣播的消息會被所有在注冊中心的微服務(wù)實(shí)例監(jiān)聽和消費(fèi),也稱消息總線

2. springcloud bus

springcloud中也有對應(yīng)的解決方案,springcloud bus 將分布式的節(jié)點(diǎn)用輕量的消息代理連接起來, 可以很容易搭建消息總線,配合springcloud config 實(shí)現(xiàn)微服務(wù)應(yīng)用配置信息的動(dòng)態(tài)更新。

3. 其他

消息代理屬于中間件。設(shè)計(jì)代理的目的就是為了能夠從應(yīng)用程序中傳入消息,并執(zhí)行一些特別的操作。 開源產(chǎn)品很多如activemq、kafka、rabbitmq、rocketmq等 目前springcloud僅支持rabbitmq和kafka。本文采用rabbitmq實(shí)現(xiàn)這一功能。

搭建分布式配置中心

1. config 架構(gòu)

SpringCloud Bus 消息總線的具體使用

當(dāng)一個(gè)系統(tǒng)中的配置文件發(fā)生改變的時(shí)候,我們需要重新啟動(dòng)該服務(wù),才能使得新的配置文件生效,spring cloud config可以實(shí)現(xiàn)微服務(wù)中的所有系統(tǒng)的配置文件的統(tǒng)一管理,而且還可以實(shí)現(xiàn)當(dāng)配置文件發(fā)生變化的時(shí)候,系統(tǒng)會自動(dòng)更新獲取新的配置。

2. git 環(huán)境搭建

使用 碼云 環(huán)境搭建 git

碼云環(huán)境地址: https://gitee.com/guopf/springcloud_bus

3. git服務(wù)器上傳配置文件

命名規(guī)范 服務(wù)名稱-版本.yml 例如configclient_dev.yml

SpringCloud Bus 消息總線的具體使用

4. 搭建 eureka 服務(wù)注冊中心

具體搭建環(huán)境隨后補(bǔ)充,可以使用我自己部署的 http://47.105.86.222:8100 (配置地址http://47.105.86.222:8100/eureka)

5. 搭建 config-server 服務(wù)

1. maven 依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<dependencies>
    <!-- springboot整合web組件 -->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
    <!--spring-cloud 整合 config-server -->
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-config-server</artifactid>
      <version>2.0.2.release</version>
    </dependency>
 
    <!-- springboot整合eureka客戶端 -->
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
      <version>2.0.2.release</version>
    </dependency>
 </dependencies>

2. 配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
### 服務(wù)地址 端口
server:
 port: 8800
### 服務(wù)名稱
spring:
 application:
  name: config_server
 cloud:
  config:
   server:
    git:
     ### git 地址
     uri: https://gitee.com/guopf/springcloud_bus.git
     username:
     password:
     ### 配置讀取文件夾
     search-paths: config
   ### 分支
   label: master
 
### eureka 配置
eureka:
 client:
  service-url:
   defaultzone: http://47.105.86.222:8100/eureka
  register-with-eureka: true
  fetch-registry: true

3. 啟動(dòng)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * @enableeurekaclient : 開啟 eureka 客戶端
 * @enableconfigserver : 開啟 config 服務(wù)端
 *
 */
@springbootapplication
@enableeurekaclient
@enableconfigserver
public class app {
  public static void main(string[] args) {
    springapplication.run(app.class,args);
  }
}

搭建 config-client 服務(wù)

1. 手動(dòng)更新 

1. maven 依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<dependencies>
  <!-- springboot整合web組件 -->
  <dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-web</artifactid>
  </dependency>
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-config-client</artifactid>
    <version>2.0.2.release</version>
  </dependency>
  <!-- springboot整合eureka客戶端 -->
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-netflix-eureka-client</artifactid>
    <version>2.0.2.release</version>
  </dependency>
  <!--核心jar包,集成rabbitmq 消息總線 bus
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-bus-amqp</artifactid>
  </dependency>
  -->
  <!-- actuator監(jiān)控中心 -->
  <dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-actuator</artifactid>
  </dependency>
 
</dependencies>

2. 配置文件(bootstrap.yml)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
### 端口
server:
 port: 8801
 ### eureka 配置中心
eureka:
 client:
  service-url:
   defaultzone: http://47.105.86.222:8100/eureka
  fetch-registry: true
  register-with-eureka: true
 
### 配置服務(wù)名稱,要和config 配置中心文件保持一致
spring:
 application:
  name: configclient
 cloud:
  config:
   ### 讀取配置
   profile: dev
   discovery:
    ###
    enabled: true
    ### config 配置中心配置的服務(wù)名稱
    service-id: config_server
management:
 endpoints:
  web:
   exposure:
    include: "*"

3. 啟動(dòng)

?
1
2
3
4
5
6
7
8
@springbootapplication
@enableeurekaclient
@enablediscoveryclient
public class app {
  public static void main(string[] args) {
    springapplication.run(app.class,args);
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * 在讀取配置文件信息的地方進(jìn)行添加 @refreshscope 注解
 */
@restcontroller
@refreshscope
public class appcontroller {
 
  @value("${userage}")
  private string userage;
 
  @getmapping("/userage")
  public string config(){
    system.out.println("userage : " + userage);
    return userage;
  }
}

修改git倉庫中的配置,進(jìn)行手動(dòng)更新,post請求

http://127.0.0.1:8801/actuator/refresh  啟動(dòng)刷新器 從cofnig_server讀取

2. 使用消息總線 bus 更新

1. 添加依賴信息

在 config_server,config_client 中添加 

?
1
2
3
4
5
6
7
8
9
<dependency>
  <groupid>org.springframework.cloud</groupid>
  <artifactid>spring-cloud-starter-bus-amqp</artifactid>
</dependency>
<!-- actuator監(jiān)控中心 -->
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-actuator</artifactid>
</dependency>

2. 配置文件修改

添加對 rabbbitmq的配置, rabbitmq服務(wù)和config_server,config_client 在一個(gè)服務(wù)器上,使用默認(rèn)配置即可

?
1
2
3
4
5
6
7
### rabbitmq 配置信息
 rabbitmq:
  addresses: 47.105.86.222
  username: guest
  password: guest
  port: 5672
  virtual-host: /

3. 刷新

http://127.0.0.1:8801/actuator/bus-refresh   post方式

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

原文鏈接:https://segmentfault.com/a/1190000017391824

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野给衣一区二区三区 | 亚州精品视频 | 成人动漫在线免费看 | 动漫人物差差插曲漫画 | 日韩一区二区不卡 | 天堂资源8中文最新版 | 视频在线视频免费观看 | 缴情五月天 | 国产最新精品视频 | 乌克兰精品摘花处破 | 国产未成女年一区二区 | 国产午夜免费视频 | 激情影院网站 | 日本三级香港三级久久99 | 99r视频在线观看 | 俄罗斯处女 | 天天狠天天天天透在线 | 99re热精品这里精品 | 欧美午夜寂寞影院安卓列表 | 朝鲜女人free性xxe | 亚洲黄色色图 | 国产卡一卡二卡3卡乱码免费 | 嫩草影院永久一二三入口 | 欧美一级高清免费a | 色综合久久98天天综合 | 国产在线视频一区二区三区 | 国产成人在线影院 | 激性欧美激情在线aa | 欧美区在线| 国模一区二区三区视频一 | 五月天精品在线 | re99热 | 亚洲午夜精品久久久久久人妖 | 黄网久久 | 亚洲第一色区 | 日本在线观看www鲁啊鲁视频 | 免费视频一区二区 | 色综合久久六月婷婷中文字幕 | 午夜想想爱午夜剧场 | 性插图动态图无遮挡 | 99午夜高清在线视频在观看 |