Azure 服務匯流排 - 進階功能
服務匯流排包含多項進階功能,可供您解決較為複雜的傳訊問題。 本文說明其中幾個功能。
訊息工作階段
若要在服務匯流排中建立先進先出 (FIFO) 保證,請使用工作階段。 訊息工作階段可供相關訊息的無限序列進行專門的排序處理。 為了能夠在高延展性、高可用性的系統中處理工作階段,工作階段功能也允許儲存工作階段狀態,讓工作階段能夠安全地在處理常式之間移動。 如需詳細資訊,請參閱訊息工作階段:先進先出 (FIFO)。
自動轉送
自動轉送功能可將佇列或訂用帳戶鏈結至相同命名空間內的另一個佇列或主題。 當您使用這項功能時,服務匯流排會自動將佇列或訂用帳戶中的訊息移至目標佇列或主題。 這類移動全都會以交易方式完成。 如需詳細資訊,請參閱使用自動轉送鏈結服務匯流排實體。
無效信件佇列
所有的服務匯流排佇列和主題訂用帳戶都有相關聯的無效信件佇列 (DLQ)。 DLQ 會保留符合下列準則的訊息:
- 訊息無法成功傳遞給任何接收者。
- 訊息已逾時。
- 接收應用程式已明確排除訊息。
無效信件佇列中的訊息會標註其放置於該處的原因。 無效信件佇列具有特殊端點,但其他方面的運作方式則與任何一般佇列相同。 應用程式或工具可瀏覽 DLQ 或從中清除佇列。 您也可以從無效信件佇列進行自動轉寄。 如需詳細資訊,請參閱服務匯流排寄不出的信件佇列的概觀。
排定的傳遞
您可以將訊息提交至佇列或主題以進行延遲處理,設定訊息可供取用的時間。 排定的訊息也可以取消。 如需詳細資訊,請參閱已排程的訊息。
訊息延遲
佇列或訂用帳戶用戶端可將已接收訊息的擷取延遲到稍後執行。 訊息可能會以非預期的順序張貼,而用戶端想要等到收到另一則訊息再處理。 延遲的訊息會保留在佇列或訂用帳戶中,且必須使用服務指派的序號明確地重新啟用。 如需詳細資訊,請參閱訊息延遲。
交易
交易會將兩個或多個作業歸為一個執行範圍。 服務匯流排可讓您對單一交易範圍內的多個傳訊實體進行作業分組。 訊息實體可為佇列、主題或訂用帳戶。 如需詳細資訊,請參閱服務匯流排交易處理概觀。
閒置時自動刪除
閒置時自動刪除可讓您指定閒置間隔,此時間過後就自動刪除佇列或主題訂用帳戶。 當訊息新增至訂用帳戶或從中移除時,就會重設間隔。 最短持續時間為 5 分鐘。 如需有關實體閒置的概觀,請參閱閒置。
重複資料偵測
重複項偵測功能可讓傳送者重新傳送相同的訊息,並且讓訊息代理程式捨棄可能的重複項。 如需詳細資訊,請參閱重複偵測。
訊息的批次刪除
Azure 服務匯流排支援分批次刪除訊息。 當佇列或訂用帳戶內的訊息已過期或不再相關,因此需要清除時,這非常有用。 如需詳細資訊,請參閱批次刪除。
支援訂購
支援順序功能可讓您指定傳送至主題的訊息是否會以傳送的相同順序轉送到訂用帳戶。 此功能不支援分割的主題。 如需詳細資訊,請參閱 .NET 中的 TopicProperties.SupportOrdering 或 JAVA 中的 TopicProperties.setOrderingSupported。
異地災害復原
當 Azure 區域停止運作時,災害復原功能可繼續在不同的區域或資料中心進行訊息處理。 此功能會保留次要區域中可用命名空間的結構化鏡像,並允許命名空間身分識別切換至次要命名空間。 已張貼的訊息會保留在先前的主要命名空間中,以便在可用性事件平息後進行復原。 如需詳細資訊,請參閱 Azure 服務匯流排地理災害復原。 此功能只會複寫服務匯流排實體的中繼資料 (實體、組態、屬性),而不是其中的資料。
異地複寫
服務匯流排異地複寫功能是隔離 Azure 服務匯流排應用程式與中斷和災害的選項之一,可提供中繼資料 (實體、組態、屬性) 和資料 (訊息資料和訊息屬性/狀態變更) 的複寫。
安全性
服務匯流排支援標準 進階訊息佇列通訊協定 (AMQP) 1.0 和 HTTP 或 REST 通訊協定及其各自的安全功能,包括傳輸層級安全性 (TLS)。 您可以使用共用存取簽章或 Microsoft Entra ID 角色型安全性,將存取權授與用戶端。
為了防範不當流量,服務匯流排提供了相關安全性功能,例如 IP 防火牆以及與虛擬網路的整合。
相關內容
請參閱服務匯流排傳訊範例,示範如何使用這些服務匯流排功能。