Spring Cloud Bus 使用說明

2021-10-24 09:47:37 字數 2409 閱讀 1957

spring cloud bus使用輕量級訊息**將分布式系統的節點鏈結起來。這**可以用於廣播狀態更改(例如配置更改)或其他管理指令。乙個關鍵的想法是,bus就像乙個擴充套件出去的spring boot應用程式的分布式執行器。同時也可以用作應用程式之間的通訊渠道。本專案提供amqp或kafka作為傳輸工具。

spring

:rabbitmq

:host

: mybroker.com

port

:5672

username

: user

password

: secret

bus涵蓋了rabbit和kafka,因為這是兩個最常見的實現。但spring cloud stream非常靈活,binder可以和spring-cloud-bus結合使用。

spring cloud bus 有兩個介面,/actuator/bus-refresh/actuator/bus-env,分別和spring cloud的常用actuator介面/actuator/refresh/actuator/env對應。

/actuator/bus-refresh介面清理refreshscope快取,並重新繫結@configurationproperties

要暴露/actuator/bus-refresh介面,需要新增以下配置:

management.endpoints.web.exposure.include=bus-refresh
/actuator/bus-env會更新所有包含指定鍵值對的例項。

要暴露/actuator/bus-env介面,需要新增以下配置:

management.endpoints.web.exposure.include=bus-env
/actuator/bus-env介面授受的post請求格式如下:

http介面可以新增「目的地」路徑引數,如/bus-refresh/customers:9000,其中customers:9000是服務id。如果id由bus上的乙個例項擁有,那麼它將處理訊息,所有其他例項將忽略它。

在spring pathmatcher(路徑分隔符為冒號:)中使用「destination」路徑引數來確定例項是否處理該訊息。使用上面的示例,「/bus-env/customers:**」將定位「customers」服務的所有例項。

spring cloud bus使用 spring cloud stream廣播訊息。因此,為了獲取訊息流,只需要在類路徑中包含您選擇的binder實現。有對應amqp(rabbitmq)和kafka的starter,spring-cloud-starter-bus-[amqp,kafka]。一般而言,spring cloud stream遵守spring boot自動配置約定,因此例如可以使用spring.rabbitmq.*配置屬性更改amqp**位址。spring cloud bus在spring.cloud.bus.*中具有少量本機配置屬性(例如,spring.cloud.bus.destination是使用外部中介軟體的主題的名稱)。通常,預設值就足夠了。

要更多地了解如何自定義訊息**設定,請參閱spring cloud stream文件。

},

},}

任何bus應用程式都可以跟蹤ack。但有時在乙個可以對資料進行更複雜查詢的**服務中這樣做是有用的,或將其**到專門的跟蹤服務。

要自定義事件名稱,您可以在自定義類上使用@jsontypename,或者使用預設策略(使用類的簡單名稱)。

請注意,生產者和消費者都需要訪問類定義。

例如,如果您有乙個名為myevent的自定義事件:

package com.acme;

public

class

myevent

extends

您可以通過以下方式註冊事件與解串器:

package com.acme;

@configuration

public

class

busconfiguration

請注意,您可以指定要掃瞄的多個基本軟體包。

Spring Cloud Bus 配置更新

spring cloud bus做配置更新步驟如下 1.提交 觸發post請求給bus refresh 2.server端接收到請求並傳送給spring cloud bus 3.spring cloud bus接到訊息並通知給其它客戶端 4.其它客戶端接收到通知,請求server端獲取最新配置 5....

Spring Cloud Bus訊息匯流排

前面講到spring cloud config把配置檔案放到github上來讀取。通過 refresh介面來更新讀取修改的檔案,從而可以讀取新的值。但是,若所有觸發操作均需要我們手工去維護web hook中的應用位置的話,這隨著系統的不斷擴張,會變的越來越難以維護,而訊息 中介軟體是解決該問題最為合...

SpringCloud Bus學習筆記

在學習springcloud時學習了springcloud bus,一直沒有成功,問題如下。1.0版本的 2.0版本的 我使用的版本為2.0的版本。而我們遇到的問題是 剛開始我用瀏覽器發出的請求 預設為get請求,機緣巧合之下,我說要不用postman試一下,剛好我的postman是預設post的請...