Azure Service Bus(一)入門簡介


一,引言

  今天開始學習新的內容 Azure Service Bus(服務總線),其實也叫 ”雲消息服務“,和 RabbitMQ,KafKa的一樣都是作為消息通信服務,但是它們直接還有有很多區別的,我這里就不過多解釋了,大家可以自行了解。以下是我對Azure Service Bus的理解

Azure Service Bus:是微軟在Azure 上提供的一種 ”雲消息服務“,在應用和服務之間傳遞消息時,即使消息的接受着處於脫機狀態下,也不影響接收者在聯機后接收信息。保證了消息數據的可靠性和持久性,同時數據通過消息在不同的應用程序和服務之間傳輸。 消息采用二進制格式,可能包含 JSON、XML 或純文本。但是缺點就是成本和消息大小。Azure Service Bus 隊列消息必須大於 64KB,同時還必須小於 256KB

這時候有人就說了,那 Azure Storage Queue 和Azure Service Bus 有啥區別?

  Azure Storage Queue:允許我們存儲大量的消息可以被使用者讀取,並且隊列消息非常靈活,如果初始使用者出現故障,則可以由不同的消費進程再次處理。隊列可以在消費者之間保存狀態。

  Azure Service Bus:服務總線隊列提供了一個代理消息通信模型。分布式應用程序可以在一個FIFO 模式中共享消息,同時單個消息只能由一個消息使用者接收。

Storage Queues Service Bus Queues
任意排序 使用FIFO保證排序
交付至少一次, 可能多次 至少交付一次,最多一次
30秒默認鎖可以延長到7天 60秒的默認鎖可以續訂
支持就地更新消息內容 消息在一次消費后被刪除
可以與 WF 集成 與 WCF和WF本地集成

二,正文

1,服務總線概述

服務總線是一個托管消息傳遞基礎結構 ,它構建可伸縮性的應用 ,並且允許我們使用消息傳遞平台擴展應用程序,而且解耦組件之間的同步通信和異步通信。

  1.1 服務總線隊列提供了一個代理消息模型。

    分布式應用程序可以在一個(FIFO)模式中共享消息

    單個消息只能由一個消息使用者接收

2,服務總線消息傳遞  

服務總線隊列提供了一個對消息的順序和傳遞進行嚴密控制的排隊機制

  消息將只出現一次

  使用先進先出(FIFO)模式處理消息

  支持事務

3,服務總線功能

  Relayed Messaging

  PublishSubscribe Topics

  Queues

  Notification Hubs

4,服務總線隊列消息的特征

服務總線隊列消息由以下幾個主要部分組成

  4.1 Body

    正文可以是任何可序列化的對象或者流

    DataContractSerializer  可用於序列化復雜對象

  4.2 Lable

    標簽文本

  4.3 TimeToLive

  4.4 Properties  

    可供使用的屬性字典

  服務總線適用於傳統企業應用程序。 這些企業應用程序需要事務、排序、重復檢測和即時一致性。 服務總線使得雲原生應用程序能夠為業務進程提供可靠的狀態轉換管理。 處理不能丟失或復制的高價值消息時,請使用 Azure 服務總線。 服務總線還利於跨混合雲解決方案的高度安全通信,並且可以將現有本地系統連接到雲解決方案。

服務總線是一個中轉消息傳送系統。 它將消息存儲在“中轉站”(例如隊列)中,直到使用方准備好接收這些消息。Azure 服務總線可以通過三種不同的方式交換消息:隊列、主題和中繼。

  隊列是消息的簡單臨時存儲位置。 發送方組件將消息添加到隊列。 目標組件在隊列的前面提取消息。 在一般情況下,每條消息僅由一個接收方接收。

  主題與隊列類似,但可以包含多個訂閱。 這意味着,多個目標組件可以訂閱單個主題,以便將每條消息發送到多個接收方。 訂閱還可以篩選主題中的消息,以便只接收相關的消息。 與隊列一樣,訂閱提供相同的解耦式通信,並且以相同的方式響應高需求。 若要將每條消息傳送到多個目標組件,請使用主題。

基本定價層中不支持主題。

   中繼是在應用程序之間執行同步雙向通信的對象。 與隊列和主題不同,它不是消息的臨時存儲位置。 相反,它可以跨防火牆等網絡邊界提供雙向無緩沖的連接。 若要在組件之間進行直接通信,請使用中繼,就如同這些組件位於同一網段上,但受到網絡安全設備的隔離。

以上簡單了介紹了以下關於 Azure ServiceBus,以及服務總線消息傳遞的特征。以及Storage Queue 和 ServiceBus 的些許差別,一句話就是

  如果你的要求比較簡單,如果需要將每條消息只發送到一個目標,或如果想要盡可能快地編寫代碼,存儲隊列則可能是最佳選擇。 否則,可以利用服務總線提供的更多選項和更高靈活性。若要將消息發送到多個訂閱者,請使用服務總線主題。

三,結尾

  OK,今天的分享到此結束,下一篇實戰,通過代碼實現服務總線主題和隊列,本文所分享的內容也存在着很多我自己的一些理解,有理解不到位的,還包含,並且指出不足之處!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

參考資料:https://docs.microsoft.com/zh-cn/azure/service-bus-messaging/

作者:Allen 

版權:轉載請在文章明顯位置注明作者及出處。如發現錯誤,歡迎批評指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM