匯出 (0) 列印
全部展開

運用 Azure Service Bus 代理訊息應用程式開發介面的最佳作法

更新日期: 2014年3月

作者: Valery Mizonov

參與者:Seth Manheim、Paolo Salvatori、James Podgorski、Eric Lam、Jayu Katti

本文將針對在 Windows Azure 服務匯流排中使用 .NET Managed 代理訊息應用程式開發介面的開發人員提供實用指引。本文所提供的建議都是直接來自最近的客戶專案。使用 服務匯流排 來建置實際方案時,我們發現了一些重要的最佳作法以及鮮為人知的秘密,不但有助於提高可靠度,而且還能改善在 服務匯流排 中使用新代理訊息功能之方案的效能。本文旨在與開發人員社群分享這些經驗。

轉送與代理訊息

Microsoft Azure 服務匯流排 提供了兩種完整的訊息方案。第一種方案是透過在雲端執行的集中式高度負載平衡「轉送」服務所提供,這種服務支援各種不同的傳輸通訊協定和 Web 服務標準,包括 SOAP、WS-* 和 REST。轉送服務支援直接單向訊息、要求/回應訊息以及點對點訊息。與這種訊息方案相關聯的模式稱為轉送訊息。在轉送訊息模式中,內部部署或雲端架構服務會透過輸出通訊埠連接到轉送服務,並且針對繫結至特定聚合位址的通訊建立雙向通訊端。用戶端不需要知道服務所在的位置,而且內部部署服務不需要在防火牆上開啟任何輸入通訊埠。轉送訊息可提供許多好處,但是伺服器和用戶端必須同時在線上,才能傳送和接收訊息。自從 服務匯流排 的初始發行版本以來,就已提供轉送訊息功能。

第二個訊息方案可啟用代理訊息功能。您也可以將代理訊息配置視為非同步或「暫時分離」訊息。產生者 (傳送者) 和取用者 (接收者) 不需要同時在線上。此訊息基礎結構會可靠地儲存訊息,直到取用方準備接收訊息為止。如此可讓分散式應用程式的元件中斷連接,不論是主動中斷連接 (例如進行維護) 或由於元件損毀而中斷連接,都不會影響整體系統。此外,接收應用程式只要在一天的特定時間上線即可,例如只需要在工作日結束時執行的存貨管理系統。

服務匯流排 代理訊息基礎結構的核心元件為佇列主題訂閱。這些元件可實現全新的非同步訊息案例,例如暫時分離、發行/訂閱、負載分級和負載平衡。如需有關這些案例的詳細資訊,請參閱<其他資源>一節。

代理訊息應用程式開發介面概觀

在這整份指引中,您將會看見 .NET Managed 代理訊息應用程式開發介面所提供之各種元件、類別和類型的許多參考。為了清楚呈現內容,我們列出了一些在 服務匯流排 中提供和支援代理訊息功能的重要應用程式開發介面。

下列類別是 Microsoft.ServiceBusMicrosoft.ServiceBus.Messaging 命名空間中最常用的應用程式開發介面成員,這些成員通常與開發代理訊息方案有關:

 

類別名稱

描述

BrokeredMessage

表示 服務匯流排 用戶端之間的通訊單位。當訊息用戶端經由佇列和主題通訊時,BrokeredMessage 物件的序列化執行個體就會透過線路傳送。

QueueClient

表示從 服務匯流排 佇列傳送和接收訊息的訊息物件。

QueueDescription

表示描述 服務匯流排 佇列的中繼資料物件,包括佇列路徑、行為設定 (例如鎖定持續時間、預設 TTL、重複偵測) 以及資訊資料點 (例如目前佇列長度和大小)。

TopicClient

表示傳送訊息至 服務匯流排 主題的訊息物件。

TopicDescription

表示描述 服務匯流排 主題的中繼資料物件,包括主題路徑、行為設定 (例如重複偵測) 以及資訊資料點 (例如目前大小和主題大小上限)。

SubscriptionClient

表示從 服務匯流排 訂閱接收訊息的訊息物件。

SubscriptionDescription

表示描述 服務匯流排 訂閱的中繼資料物件,包括訂閱名稱、原因主題路徑、行為設定 (例如工作階段支援、預設 TTL、鎖定持續時間) 以及資訊資料點 (例如目前訊息計數)。

NamespaceManager

表示負責處理 服務匯流排 訊息實體 (佇列、主題、訂閱、規則) 之執行階段作業的管理物件,包括建立、擷取、刪除和判斷提示存在性。

MessagingFactory

表示負責具現化、追蹤和管理訊息實體用戶端 (例如 TopicClient、QueueClient 和 SubscriptionClient) 之生命週期的 Factory 物件。

MessageReceiver

表示支援豐富傳訊功能且特別強調訊息接收作業的抽象訊息物件。

MessageSender

表示支援豐富傳訊功能且特別強調訊息傳送作業的抽象訊息物件。

MessageSession

表示針對相關訊息進行分組以在單一交易中處理的訊息工作階段。

Filter

表示包含篩選運算式以及在 服務匯流排 訂閱評估引擎中執行之相關聯動作的抽象中繼資料物件。Filter 類別的用途是做為 TrueFilterFalseFilterSqlFilterCorrelationFilter 的基底類別,表示給定篩選類型之中繼資料物件的實作。

TokenProvider

表示 Factory 物件,這個物件會提供負責取得 SAML、共用密碼和簡單 Web Token 之不同安全性 Token 提供者類型的存取權。

建議您熟悉這些應用程式開發介面成品,以便率先使用 服務匯流排 建置您的第一個代理訊息方案。請注意,這並非代理訊息應用程式開發介面中所有類別的詳盡清單。如需所有應用程式開發介面成員的完整說明,請參閱 MSDN 文件集。

代理訊息應用程式開發介面的最佳作法

本節的主題會分享衍生自 .NET Managed 代理訊息應用程式開發介面實際操作經驗的特定建議。這些建議的目標是要鼓勵開發人員應用下列章節所討論的技巧和模式,以便提供健全的訊息方案。本節包含下列主題:

社群新增項目

新增
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2014 Microsoft