中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java怎么配置中心和消息總線

發布時間:2022-01-18 10:53:27 來源:億速云 閱讀:221 作者:iii 欄目:軟件技術

這篇文章主要介紹“java怎么配置中心和消息總線”,在日常操作中,相信很多人在java怎么配置中心和消息總線問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java怎么配置中心和消息總線”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Spring Cloud Bus

Spring cloud bus通過輕量消息代理連接各個分布的節點。這會用在廣播狀態的變化(例如配置變化)或者其他的消息指令。Spring bus的一個核心思想是通過分布式的啟動器對spring boot應用進行擴展,也可以用來建立一個多個應用之間的通信頻道。目前唯一實現的方式是用AMQP消息代理作為通道,同樣特性的設置(有些取決于通道的設置)在更多通道的文檔中。

Spring cloud bus被國內很多都翻譯為消息總線,也挺形象的。大家可以將它理解為管理和傳播所有分布式項目中的消息既可,其實本質是利用了MQ的廣播機制在分布式的系統中傳播消息,目前常用的有Kafka和RabbitMQ。利用bus的機制可以做很多的事情,其中配置中心客戶端刷新就是典型的應用場景之一,我們用一張圖來描述bus在配置中心使用的機制。

java怎么配置中心和消息總線

根據此圖我們可以看出利用Spring Cloud Bus做配置更新的步驟:

1、提交代碼觸發post給客戶端A發送bus/refresh

2、客戶端A接收到請求從Server端更新配置并且發送給Spring Cloud Bus

3、Spring Cloud bus接到消息并通知給其它客戶端

4、其它客戶端接收到通知,請求Server端獲取最新配置

5、全部客戶端均獲取到最新的配置

項目示例

客戶端spring-cloud-config-client改造

1、添加依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

需要多引入spring-cloud-starter-bus-amqp包,增加對消息總線的支持

2、配置文件

## 刷新時,關閉安全驗證
management.security.enabled=false
## 開啟消息跟蹤
spring.cloud.bus.trace.enabled=true
 
spring.rabbitmq.host=192.168.9.89
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456

配置文件需要增加RebbitMq的相關配置,這樣客戶端代碼就改造完成了。

3、測試

依次啟動spring-cloud-eureka、spring-cloud-config-server、spring-cloud-config-client項目,在啟動spring-cloud-config-client項目的時候我們會發現啟動日志會輸出這樣的一條記錄。

2017-05-26 17:05:38.568  INFO 21924 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/bus/refresh],methods=[POST]}" onto public void org.springframework.cloud.bus.endpoint.RefreshBusEndpoint.refresh(java.lang.String)

說明客戶端已經具備了消息總線通知的能力了,為了更好的模擬消息總線的效果,我們更改客戶端spring-cloud-config-client項目的端口為8003、8004依次啟動,這樣測試環境就準備好了。啟動后eureka后臺效果圖如下:

java怎么配置中心和消息總線

我們先分別測試一下服務端和客戶端是否正確運行,訪問:http://localhost:8001/neo-config/dev,返回信息:

{
    "name": "neo-config", 
    "profiles": [
        "dev"
    ], 
    "label": null, 
    "version": null, 
    "state": null, 
    "propertySources": [
        {
            "name": "https://github.com/ityouknow/spring-cloud-starter/config-repo/neo-config-dev.properties", 
            "source": {
                "neo.hello": "hello im dev"
            }
        }
    ]
}

說明server端都正常讀取到了配置信息。

依次訪問:http://localhost:8002/hello、http://localhost:8003/hello、http://localhost:8004/hello,返回:hello im dev。說明客戶端都已經讀取到了server端的內容。

現在我們更新neo-config-dev.properties 中neo.hello的值為hello im dev update并提交到代碼庫中,訪問:http://localhost:8002/hello 依然返回hello im dev。我們對端口為8002的客戶端發送一個/bus/refresh的post請求。在win下使用下面命令來模擬webhook.

curl -X POST http://localhost:8002/bus/refresh

執行完成后,依次訪問:http://localhost:8002/hello、http://localhost:8003/hello、http://localhost:8004/hello,返回:hello im dev update。說明三個客戶端均已經拿到了最新配置文件的信息,這樣我們就實現了圖一中的示例。

到此,關于“java怎么配置中心和消息總線”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衢州市| 齐齐哈尔市| 察隅县| 永德县| 东山县| 天门市| 花垣县| 潢川县| 长乐市| 双辽市| 台南县| 申扎县| 汉川市| 阜阳市| 康马县| 滁州市| 星子县| 桑日县| 洞口县| 阿克苏市| 江达县| 天长市| 宣恩县| 博湖县| 华安县| 惠州市| 资中县| 桃园县| 本溪| 靖江市| 九江县| 重庆市| 嘉荫县| 沽源县| 东丽区| 景谷| 吴旗县| 越西县| 博罗县| 阳谷县| 阿拉善左旗|