高效使用微軟Azure服務匯流排的訊息功能

2021-09-16 19:19:32 字數 1333 閱讀 4729

無論是應用系統之間,或者分布式系統的不同元件之間,通常需要一種快速、安全、可靠的方式來彼此通訊。以前,你會想到基於msmq或rabbitmq之類訊息中介軟體來實現,自己搭建和維護的同時,確保可用性、擴充套件性和效能等符合系統設計要求。

\\ windows azure服務匯流排(service bus)提供了一套安全且高可用的基於雲服務的託管訊息傳遞基礎設施,以實現廣泛通訊、大範圍事件分布、命名和服務發布。這篇文章會介紹azure服務匯流排訊息功能的基本概念、適用場景、以及一些實踐經驗。

\\\\

windows azure支援兩種可靠的處理非同步訊息的佇列機制:

\\\\

假設這樣乙個場景:系統/元件a(簡稱a)向系統/元件b(簡稱b )傳送訊息。但如果b由於裝置或網路原因而無法訪問時,對a會造成什麼影響呢?顯然,在下圖所顯示的直連模式下(a呼叫b的服務介面),a功能會因為b不可用而無法正常提供服務。

\\ 為了降低b不可用對a造成的影響,可能你會考慮通過增加b的例項數,以提高b的可用性。而且,實際情況中往往a也是多例項的。

\\ 顯然,你會不希望看到上圖的情況發生在自己的系統設計中,因為這種緊耦合的方式並不宜於系統的維護和擴充套件。因此,可以考慮在a和b的例項間使用負載均衡來解決,這樣一來,無論b有多少例項,對a來說只需要配置乙個訪問位址。

\\ 雖然負載均衡提高了a和b之間的松耦合性,但新的問題來了。當a在遭遇到流量高峰時,高流量帶來的壓力也會傳遞到b上來。如果b的處理能力不足,b的響應速度會變慢,甚至癱瘓。可見,負載均衡並未提供到百分百的松耦合。

\\ 如果你也遇到了上述類似的問題,那不妨在應用設計中考慮使用azure服務匯流排的佇列或主題/訂閱(如下圖所示)。

\\ 在基於佇列或主題/訂閱的非同步訊息處理機制下,系統會具備如下特點:\\

windows azure服務匯流排的佇列或主題/訂閱的適用場景其實很多,主要包括兩類:

\\裝置與系統間的訊息傳遞,起到物聯網閘道器作用。例如,智慧型家居中的智慧型裝置(空氣淨化器、煙霧感測器等)不斷將裝置狀態傳送到雲端,使用者通過手機上的應用可以遠端控制裝置。佇列、主題/訂閱在裝置與雲端系統間擔當閘道器,採集裝置狀態,分發控制指令等。\\\

高效使用微軟Azure服務匯流排的訊息功能

無論是應用系統之間,或者分布式系統的不同元件之間,通常需要一種快速 安全 可靠的方式來彼此通訊。以前,你會想到基於msmq或rabbitmq之類訊息中介軟體來實現,自己搭建和維護的同時,確保可用性 擴充套件性和效能等符合系統設計要求。windows azure服務匯流排 service bus 提供...

高效使用微軟Azure服務匯流排的訊息功能

無論是應用系統之間,或者分布式系統的不同元件之間,通常需要一種快速 安全 可靠的方式來彼此通訊。以前,你會想到基於msmq或rabbitmq之類訊息中介軟體來實現,自己搭建和維護的同時,確保可用性 擴充套件性和效能等符合系統設計要求。windows azure服務匯流排 service bus 提供...

高效使用微軟Azure服務匯流排的訊息功能

無論是應用系統之間,或者分布式系統的不同元件之間,通常需要一種快速 安全 可靠的方式來彼此通訊。以前,你會想到基於msmq或rabbitmq之類訊息中介軟體來實現,自己搭建和維護的同時,確保可用性 擴充套件性和效能等符合系統設計要求。windows azure服務匯流排 service bus 提供...