這篇文章主要介紹了SpringCloud Bus消息總線怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鳳陽(yáng)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
什么是消息總線
1. 概念
在微服務(wù)架構(gòu)中,通常會(huì)使用輕量級(jí)的消息代理來(lái)構(gòu)建一個(gè)共用的消息主題來(lái)連接各個(gè)微服務(wù)實(shí)例, 它廣播的消息會(huì)被所有在注冊(cè)中心的微服務(wù)實(shí)例監(jiān)聽(tīng)和消費(fèi),也稱消息總線
2. SpringCloud Bus
SpringCloud中也有對(duì)應(yīng)的解決方案,SpringCloud Bus 將分布式的節(jié)點(diǎn)用輕量的消息代理連接起來(lái), 可以很容易搭建消息總線,配合SpringCloud config 實(shí)現(xiàn)微服務(wù)應(yīng)用配置信息的動(dòng)態(tài)更新。
3. 其他
消息代理屬于中間件。設(shè)計(jì)代理的目的就是為了能夠從應(yīng)用程序中傳入消息,并執(zhí)行一些特別的操作。 開(kāi)源產(chǎn)品很多如ActiveMQ、Kafka、RabbitMQ、RocketMQ等 目前springCloud僅支持RabbitMQ和Kafka。本文采用RabbitMQ實(shí)現(xiàn)這一功能。
搭建分布式配置中心
1. Config 架構(gòu)
當(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)會(huì)自動(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
4. 搭建 Eureka 服務(wù)注冊(cè)中心
具體搭建環(huán)境隨后補(bǔ)充,可以使用我自己部署的 http://47.105.86.222:8100 (配置地址http://47.105.86.222:8100/eureka)
5. 搭建 config-server 服務(wù)
1. maven 依賴
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-config-server 2.0.2.RELEASE org.springframework.cloud spring-cloud-starter-netflix-eureka-client 2.0.2.RELEASE
2. 配置文件
### 服務(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)
/** * @EnableEurekaClient : 開(kāi)啟 eureka 客戶端 * @EnableConfigServer : 開(kāi)啟 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 依賴
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-config-client 2.0.2.RELEASE org.springframework.cloud spring-cloud-starter-netflix-eureka-client 2.0.2.RELEASE org.springframework.boot spring-boot-starter-actuator
2. 配置文件(bootstrap.yml)
### 端口 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)
@SpringBootApplication @EnableEurekaClient @EnableDiscoveryClient public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
/** * 在讀取配置文件信息的地方進(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倉(cāng)庫(kù)中的配置,進(jìn)行手動(dòng)更新,post請(qǐng)求
http://127.0.0.1:8801/actuator/refresh 啟動(dòng)刷新器 從cofnig_server讀取
2. 使用消息總線 bus 更新
1. 添加依賴信息
在 config_server,config_client 中添加
org.springframework.cloud spring-cloud-starter-bus-amqp org.springframework.boot spring-boot-starter-actuator
2. 配置文件修改
添加對(duì) rabbbitMQ的配置, rabbitMQ服務(wù)和config_server,config_client 在一個(gè)服務(wù)器上,使用默認(rèn)配置即可
### 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方式
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“SpringCloud Bus消息總線怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!