今天開始學習新的內容 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本地集成 |
服務總線是一個託管消息傳遞基礎結構 ,它構建可伸縮性的應用 ,而且容許咱們使用消息傳遞平臺擴展應用程序,並且解耦組件之間的同步通訊和異步通訊。spa
1.1 服務總線隊列提供了一個代理消息模型。3d
分佈式應用程序能夠在一個(FIFO)模式中共享消息代理
單個消息只能由一個消息使用者接收對象
服務總線隊列提供了一個對消息的順序和傳遞進行嚴密控制的排隊機制blog
消息將只出現一次
使用先進先出(FIFO)模式處理消息
支持事務
Relayed Messaging
PublishSubscribe Topics
Queues
Notification Hubs
服務總線隊列消息由如下幾個主要部分組成
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
版權:轉載請在文章明顯位置註明做者及出處。如發現錯誤,歡迎批評指正。