通過 Azure 服務總線中的消息佇列和發佈-訂閱主題,全面管理企業消息代理。 此服務會將訊息儲存在 訊息代理程式 中(例如,佇列),直到取用者準備好接收訊息為止。
優點包括:
- 跨競爭工作者的負載平衡。
- 跨服務和應用程式界限安全地路由和傳輸數據和控制。
- 協調需要高度可靠性的交易工作。
如需使用服務總線的詳細資訊,請參閱 Azure 服務總線傳訊。 瞭解如何設定傳訊,以將應用程式和服務連線到內部部署和雲端環境。
若要瞭解服務總線如何助於穩定的工作負載,請參考下列主題:
注意
先前需要將 屬性 zoneRedundant
設定為 true
,以啟用可用性區域,不過此行為預設已變更為啟用可用性區域。 現有的命名空間會盡可能移轉至可用性區域,且屬性 zoneRedundant
已被取代。 即使已啟用可用性區域,屬性 zoneRedundant
仍會顯示為 false
。
下列各節專屬於 Azure 服務總線和可靠性:
- 設計考慮
- 設定檢查清單
- 建議的組態選項
- 來源工件
設計考慮
使用 Azure 服務總線運行時間 SLA 將可靠性最大化。 正確設定的應用程式可以傳送或接收訊息,或在已部署的佇列或主題上執行其他作業。 如需詳細資訊,請參閱 服務總線 SLA。
其他設計考慮包括:
除了關於 服務總線高級和標準消息層的文件,下列功能僅適用於高級庫存單位(SKU):
- 專用資源。
- 虛擬網路整合:限制可連線到服務總線實例的網路。 需要在子網上啟用服務端點。 有些信任的 Microsoft 服務在實作虛擬網路時不受支援(例如,與事件網格整合)。 如需詳細資訊,請參閱 允許從特定虛擬網路存取 Azure 服務總線命名空間。
- 專用端點。
-
IP 篩選/防火牆:將連線限制為只定義
IPv4
位址或IPv4
位址範圍。 - 事件方格整合:可用的事件類型。
- 擴展傳訊單位。
- 地理災害復原(配對命名空間)。
- 異地復寫(跨區域的完整數據復寫)。
- CMK(客戶自控密鑰):Azure 服務總線會加密待用數據,並在存取時自動解密,但客戶也可以自備客戶自控密鑰。
部署具有異地災害復原功能且位於可用性區域的服務匯流排時,服務等級操作(SLO)會大幅提升,但不會改變可用時間SLA。
清單
您是否已在設定 Azure 服務總線時考量到可靠性?
- 評估 Azure 服務總線的進階層優點。
- 請確定 服務總線傳訊例外狀況 已正確處理。
- 使用進階傳訊佇列通訊協定連線到服務總線(AMQP),並盡可能使用服務端點或私人端點。
- 檢閱使用服務總線傳訊 改善效能的最佳做法。
- 在傳送者和接收端實作異地複寫,以防止中斷和災害。
- 設定異地災害。
- 如果您需要具有佇列和主題的任務關鍵性傳訊,建議使用具有地理災難復原的 Service Bus Premium。
- 實作服務總線命名空間的高可用性。
- 請確定相關訊息會依保證的順序傳遞。
- 透過 JMS API 評估不同的 Java 傳訊服務 (JMS) 功能。
- 使用 .NET NuGet 套件與服務匯流排的傳訊實體進行通訊。
- 實作傳送或接收訊息時暫時性錯誤處理的復原能力。
- 實施自動擴展傳訊單位。
設定建議
請考慮下列建議,以在設定 Azure 服務總線時將可靠性優化:
建議 | 描述 |
---|---|
評估 Azure 服務總線的進階層優點。 | 請考慮移轉至服務總線的進階層,以利用平台支援的中斷和災害保護。 |
使用AMQP通訊協定連線到服務總線,並盡可能使用服務端點或私人端點。 | 此建議會保留 Azure 骨幹上的流量。
注意:Microsoft.Azure.ServiceBus 與 Windows.Azure.ServiceBus 命名空間的預設連線通訊協定是 AMQP 。 |
在傳送者和接收端實作異地複寫,以防止中斷和災害。 | 標準層僅支持傳送者和接收端異地備援的實作。 Azure 區域中的中斷或災害可能會導致解決方案停機。 |
設定異地災害。 |
-
雙活 - 主動/被動 - 配對命名空間 (主動/被動) - Geo-Replication (具有完整數據複製的主動/被動) - 注意:次要區域最好是 Azure 的配對區域。 |
如果您需要具有佇列和主題的關鍵性任務傳訊,建議使用具有地理災難復原功能的 Service Bus Premium。 | 選擇模式取決於業務需求和復原時間目標 (RTO)。 |
實作服務總線命名空間的高可用性。 | 進階層支援命名空間層級的異地災害復原和複寫。 在此層級,進階層會使用主要和次要災害復原命名空間,為元數據災害復原提供高可用性。 |
請確定相關訊息會依保證的順序傳遞。 | 請注意,在每個訊息上設定分割區索引鍵、會話標識碼或訊息標識符的需求,以確保相關的訊息傳送至訊息實體中的相同分割區。 |
透過 JMS API 評估不同的 JMS 功能。 | 透過 JMS 2.0 API 提供的功能(及其軟體開發工具包(SDK)與透過原生 SDK 取得的功能不同。 例如,JMS 中無法使用服務總線會話。 |
實作傳送或接收訊息時暫時性錯誤處理的復原能力。 | 務必針對傳送和接收作業實作適當的暫時性故障處理和錯誤處理,以維持吞吐量並防止訊息遺失。 |
實作 自動調整傳訊單位,以確保您有足夠的資源可供工作負載使用。 |
來源工件
若要識別不使用私人端點的進階服務總線實例,請使用下列查詢:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier == 'Premium' and isempty(properties.privateEndpointConnections)
若要識別不在高級層的 Service Bus 實例,請使用下列查詢:
Resources | where type == 'microsoft.servicebus/namespaces' | where sku.tier != 'Premium'