服務匯流排進階和標準傳訊層級

服務匯流排傳訊 (包含佇列和主題等實體) 結合雲端級別的企業傳訊功能與豐富的發佈-訂閱語意。 服務匯流排傳訊作為許多縝密雲端解決方案的通訊骨幹。

服務匯流排傳訊的「進階」層級可滿足一般客戶對於關鍵任務應用程式的規模、效能和可用性要求。 針對生產案例,建議使用進階層。 功能集雖幾乎相同,但這兩個服務匯流排的傳訊層卻專為不同使用案例而設計。

下表醒目提示幾項大致的差異:

進階 標準
高輸送量 變動輸送量
可預測的效能 變動延遲
固定定價 隨用隨付的變動定價
可調整工作負載規模 N/A
訊息大小上限為 100 MB。 如需詳細資訊,請參閱大型訊息支援 訊息大小上限為 256 KB

服務匯流排進階傳訊提供 CPU 和記憶體層級的資源隔離,讓每個客戶工作負載能隔離執行。 此資源容器稱為「傳訊單位」 。 每個進階命名空間都會被配置至少一個傳訊單位。 您可以為每個服務匯流排進階命名空間購買 1、2、4、8 或 16 個傳訊單位。 單一工作負載或實體可以跨越多個傳訊單位,而傳訊單位數目可以隨意變更。 結果是您的服務匯流排方案的效能可預測並可重複。

此效能不僅更可預測並可取得,而且還更快速。 使用進階訊息,尖峰效能的速度比標準層級的速度快很多。

進階傳訊技術差異

下列各節討論進階與標準傳訊層之間的一些差異。

快速實體

因為進階傳訊是在隔離的執行階段環境中執行,所以在進階命名空間中並不支援快速實體。 快速實體在將訊息寫入永續性儲存體之前,會將訊息暫時儲存在記憶體中。 如果您有在標準傳訊下執行的程式碼,而且想要將其移植到進階層,請確定已停用快速實體功能。

進階傳訊資源使用量

一般而言,實體上的任何作業都可能導致 CPU 和記憶體使用量。 以下是其中一些作業:

  • 管理作業,像是對佇列、主題和訂用帳戶的 CRUD (建立、擷取、更新和刪除) 作業。
  • 執行階段作業 (傳送和接收訊息)
  • 監視作業和警示

不過,額外的 CPU 和記憶體使用量沒有另外定價。 針對進階傳訊層,訊息單位有單一價格。

CPU 和記憶體使用量會追蹤並顯示給您,原因如下:

  • 提供對系統內部的透明度
  • 瞭解購買的資源容量。
  • 可協助您決定相應增加/減少的容量規劃。

需要多少傳訊單位?

佈建 Azure 服務匯流排進階命名空間時,您可以指定傳訊單位數目。 這些傳訊單位是配置給命名空間的專用資源。 在命名空間上啟用了分割時,傳訊單位會平均分散到分割區。

配置給服務匯流排進階命名空間的傳訊單位數目可以動態調整,以考量工作負載中變更的因素 (增加或減少)。

決定結構的傳訊單位數目時,需要考慮幾個因素:

  • 從配置給命名空間的 1 或 2 個傳訊單位每個分割區 1 個傳訊單位開始。
  • 研究命名空間資源使用量計量內的 CPU 使用量計量。
    • 如果 CPU 使用量低於 20%,您可以相應減少配置給命名空間的傳訊單位數目。
    • 如果 CPU 使用量低於 70%,應用程式可以因為配置給命名空間的傳訊單位數目相應增加而受益。

若要瞭解如何設定服務匯流排命名空間來自動調整 (增加或減少傳訊單位),請參閱自動更新傳訊單位

注意

配置給命名空間的資源調整可以是先占式或回應式。

  • 先占式:如果預期會有其他工作負載 (因為季節性或趨勢),您可以在叫用工作負載前,繼續將更多傳訊單位配置給命名空間。

  • 回應式:如果藉由研究資源使用量計量來識別其他工作負載,則可以將其他資源配置給命名空間,以納入增加的需求。

服務匯流排的計費計量是按每小時計算。 在相應增加的案例下,您只需為使用這些額外資源的時數付費。

開始使用進階傳訊

開始使用進階訊息非常簡單,其程序類似於標準傳訊。 首先在 Azure 入口網站建立命名空間。 請務必選取 [定價層] 之下的 [進階]。 選取 [檢視完整定價詳細資料] 以查看每一層的詳細資訊。

Screenshot that shows the selection of premium tier when creating a namespace.

您也可以使用 Azure Resource Manager 範本建立進階命名空間

大型訊息支援

Azure 服務匯流排進階層命名空間支援傳送最多 100 MB 大型訊息承載的能力。 這項功能主要是針對已在其他企業傳訊代理程式上使用較大訊息承載,並想要順暢地移轉至 Azure 服務匯流排的舊版工作負載為目標。

以下是在 Azure 服務匯流排上傳送大型訊息時的一些考慮 -

  • 僅支援 Azure 服務匯流排進階層命名空間。
  • 只有在使用 AMQP 通訊協定時才支援。 使用 SBMP 或 HTTP 通訊協定時不支援,在進階層中,這些通訊協定的訊息大小上限為 1MB。
  • 使用 Java 訊息服務 (JMS) 2.0 用戶端 SDK 和其他語言用戶端 SDK 時支援。
  • 傳送大型訊息會導致輸送量降低並增加延遲。
  • 雖然支援 100 MB 的訊息承載,但建議盡可能降低訊息承載,以確保來自服務匯流排命名空間的可靠效能。
  • 只會針對傳送至佇列或主題的訊息強制執行訊息大小上限。 不會對接收作業強制執行大小限制。 其可讓您更新指定佇列 (或主題) 的訊息大小上限。
  • 不支援批次。
  • Service Bus Explorer 不支援傳送或接收大型訊息。

2026 年 9 月 30 日我們將淘汰 Azure 服務匯流排的 SBMP 通訊協定支援,因此您將無法在 2026 年 9 月 30 日之後再使用此通訊協定。 請在該日期之前移轉至使用 AMQP 通訊協定的最新 Azure 服務匯流排 SDK 程式庫,該程式庫提供重要的安全性更新和改進的功能。

如需詳細資訊,請參閱支援淘汰公告

啟用新佇列 (或主題) 的大型訊息支援

若要啟用大型訊息的支援,請在建立新的佇列 (或主題) 時設定訊息大小上限,如下圖所示:

Screenshot that shows how to enable large message support for an existing queue.

啟用現有佇列 (或主題) 的大型訊息支援

您也可以如下所示,針對現有佇列 (或主題) 啟用大型訊息的支援,方法是更新該特定佇列 (或主題) 的 [概觀] 上的訊息大小上限,如下圖所示。

Screenshot of the Create queue page with large message support enabled.

網路安全性

下列網路安全性功能僅適用於進階層。 如需詳細資料,請參閱網路安全性

使用 Azure 入口網站設定 IP 防火牆僅適用於進階層命名空間。 不過,您可以使用 Azure Resource Manager 範本、CLI、PowerShell 或 REST API,為其他層設定 IP 防火牆規則。 如需詳細資訊,請參閱設定 IP 防火牆

待用資料加密

Azure 服務匯流排進階版透過 Azure 儲存體服務加密 (Azure SSE) 提供待用資料加密功能。 服務匯流排進階版會使用 Azure 儲存體來儲存資料。 以 Azure 儲存體儲存的所有資料,均使用 Microsoft 受控金鑰加密。 如果您使用自己的金鑰 (也稱為攜帶您自己的金鑰 (BYOK) 或客戶自控金鑰),則仍使用 Microsoft 受控金鑰來加密資料,但除此之外,Microsoft 受控金鑰會使用客戶自控金鑰進行加密。 此功能可供使用者建立、輪替、停用和撤銷用於加密 Microsoft 受控金鑰的客戶自控金鑰的存取權。 啟用 BYOK 功能是在命名空間上的一次性設定流程。 如需詳細資訊,請參閱加密 Azure 服務匯流排待用資料

資料分割

在分割方面,標準層和進階層之間有一些差異。

  • 基本或標準 SKU 中的所有佇列與主題在建立實體時均可使用分割。 命名空間可以同時具有分割和非分割實體。 為進階層建立命名空間時可使用分割,而且該命名空間中的所有佇列和主題都會進行分割。 進階命名空間中任何先前遷移的分割實體都會繼續如預期般運作。
  • 在基本或標準 SKU 中啟用分割時,服務匯流排會建立 16 個分割區。 在進階層中啟用分割時,會在命名空間建立期間指定分割區數目。

如需詳細資訊,請參閱服務匯流排中的分割

異地災害和復原

Azure 服務匯流排會將個別機器或甚至整個機架的重大失敗風險,分散到資料中心內跨多個失敗網域的叢集,還實作透明的失敗偵測和容錯移轉機制,讓服務在保證的服務等級內繼續運作,發生這類失敗時,通常也不會明顯中斷。 進階命名空間可有兩個以上的傳訊單位,而且這些傳訊單位分散在資料中心內的多個失敗網域,支援全作用中服務匯流排叢集模型。

針對進階層命名空間,中斷風險會進一步分散到三個位於不同實體位置的設備可用性區域,而且服務會保留足夠的容量,立即應付徹底失去資料中心的重大事件。 失敗網域內的全作用中 Azure 服務匯流排叢集模型,以及可用性區域支援,在嚴重硬體失敗的復原能力,甚至是整個資料中心設施的嚴重遺失方面,優於任何內部部署訊息代理程式產品。 然而,還是可能有大規模實體損毀的嚴重情況,甚至連這些措施也難以防範。

服務匯流排異地災害復原功能旨在更輕鬆從如此重大災害中復原,並永久放棄失敗的 Azure 區域,而不需要變更應用程式設定。 放棄 Azure 區域通常牽涉數個服務,此功能旨在協助保留複合應用程式設定的完整性。 此功能適用於全球的服務匯流排進階層。

如需詳細資訊,請參閱 Azure 服務匯流排地理災害復原

Java 訊息服務 (JMS) 支援

進階層支援 JMS 1.1 和 JMS 2.0。 如需詳細資訊,請參閱如何搭配 Azure 服務匯流排進階使用 JMS 2.0

標準層僅支援著重於佇列的 JMS 1.1 子集。 如需詳細資訊,請參閱搭配 Azure 服務匯流排標準使用 Java 訊息服務 1.1

下一步

若要深入了解服務匯流排傳訊,請參閱下列連結: