Message Bus 訊息匯流排

2021-09-25 04:30:35 字數 1307 閱讀 1550

liferay的*訊息匯流排(message bus)*是一種服務級api,元件可以用它來傳送和接收訊息。它提供了訊息生產者(producers)和消費者(consumers)之間的松耦合。 訊息匯流排(message bus)位於liferay的全域性類載入器中,使每個已部署的web應用程式都可以訪問它。 它不支援遠端訊息傳遞,但在啟用clusterlink時,可在集群中傳送訊息。

以下是訊息匯流排的一些常見用法:

你可以利用訊息匯流排在plugins之間以及plugins內部傳送訊息。

在閱讀訊息匯流排教程時,你將學習*同步(synchronous)和非同步(asynchronous)*訊息傳遞,*序列(serial)與並行(in-psrallel)*訊息排程,以及如何定義訊息格式的樣式。

在直奔主題之前,你應該首先了解message bus系統的體系結構(architecture)。

liferay的訊息匯流排系統是處理應用程式之間和應用程式內部通訊的解決方案。 但是,在開始使用message bus之前,你應該了解message bus的結構基礎知識。 本教程提供有關message bus系統元件的資訊,以及可以傳送的不同型別的訊息。

訊息匯流排系統包含以下元件:

你的服務可以將訊息傳送到乙個或多個destinations,並可以收聽乙個或多個destination。 下圖描繪了這一點。 單個服務既可以是訊息傳送者,也可以是訊息監聽者。 例如,在下圖中,plugin 2 - service 3和plugin 5 - service 7都傳送和收聽訊息。

[外鏈轉存失敗(img-jvyzo4cj-1562829682539)( 『『message bus system』』)]

訊息匯流排支援同步synchronous 和非同步asynchronous訊息傳遞:

可以通過以下檔案配置message bus:

note:portal-impl.jar的內部檔案meta-inf/messaging-core-spring.xml指定liferay的預設message bus類,預設非同步訊息傳送方類和預設同步訊息傳送方類。

你可以使用com.liferay.portal.kernel.messaging.message類或com.liferay.portal.kernel.json.jsonobject類來控制訊息型別(message type)。 這些類包含在liferay的portal-service.jar檔案中。 liferay核心服務通常以json格式序列化和反序列化。 以下教程中將使用這兩種型別的訊息類來展示如何實現同步和非同步訊息傳遞。

C 11 MessageBus 訊息佇列實現

any.h pragma once include include 類似於boost any類的實現 using namespace std struct any any any that m ptr that.clone m tpindex that.m tpindex any any that ...

Spring Cloud Bus訊息匯流排

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

SpringCloud Bus訊息匯流排

1 安裝好rabbitmq的環境 2 在配置中心服務端和客戶端加上以下依賴 org.springframework.cloudgroupid spring cloud starter bus amqpartifactid dependency 3 在配置中心的配置檔案中加上以下配置 spring r...