探索 Azure 服務匯流排
Azure 服務匯流排是完全受控的企業訊息代理程式,具有訊息佇列和發佈-訂閱主題。 服務匯流排可用來將應用程式和服務分離。 此服務會使用「訊息」,在不同的應用程式和服務之間傳輸資料。 訊息是以中繼資料裝飾的容器,其中包含資料。 資料可以是任何種類的資訊,包括以一般格式編碼的結構化資料,例如下列格式:JSON、XML、Apache Avro 和純文字。
某些常見的傳訊案例如下:
- 傳訊。 傳輸業務資料,例如銷售額、採購訂單、日誌或庫存進出狀況。
- 分離應用程式。 改善應用程式和服務的可靠性和可擴縮性。 用戶端和服務無須同時在線上。
- 主題和訂用帳戶。 允許發行者和訂閱者之間的 1:n 關聯性。
- 訊息工作階段:。 實作需要訊息排序或訊息延遲的工作流程。
服務匯流排階層
服務匯流排會提供基本、標準層和進階層。 服務匯流排傳訊的「進階」層可滿足一般客戶對於關鍵任務應用程式的規模、效能和可用性要求。 針對生產案例,建議使用進階層。 功能集雖幾乎相同,但這兩個服務匯流排的傳訊層卻專為不同使用案例而設計。 如需可用階層的詳細資訊,請造訪服務匯流排定價。
下表醒目提示進階層與標準層之間的一些概略差異。
Premium | 標準 |
---|---|
高輸送量 | 變動輸送量 |
可預測的效能 | 變動延遲 |
固定定價 | 隨用隨付的變動定價 |
可調整工作負載規模 | N/A |
訊息大小上限為 100 MB | 訊息大小上限為 256 KB |
進階功能
服務匯流排包含多項進階功能,可供您解決較為複雜的傳訊問題。 下表描述其中的幾個功能。
功能 | 描述 |
---|---|
訊息工作階段 | 若要在服務匯流排中建立先進先出 (FIFO) 保證,請使用工作階段。 訊息工作階段可供相關訊息的無限序列進行專門的排序處理。 |
自動轉送 | 自動轉送功能可將佇列或訂用帳戶鏈結至相同命名空間中的另一個佇列或主題。 |
無效信件佇列 | 服務匯流排支援無效信件佇列 (DLQ)。 DLQ 會保存無法傳遞給任何接收者的訊息。 服務匯流排可讓您移除 DLQ 的訊息,並進行檢查。 |
排定的傳遞 | 您可以將訊息提交至佇列或主題,以進行延遲處理。 您可排程作業在特定時間由系統處理。 |
訊息延遲 | 佇列或訂用帳戶用戶端可將訊息擷取動作延遲至稍後的時間。 訊息仍位於佇列或訂用帳戶,但會先擱置。 |
交易 | 交易會將兩個或多個作業歸為一個執行範圍。 服務匯流排支援單一交易範圍內的單一傳訊實體進行作業分組。 訊息實體可為佇列、主題或訂用帳戶。 |
篩選及動作 | 訂閱者可定義希望接收的主題訊息。 這些訊息的指定形式為一或多個命名訂閱規則。 |
閒置時自動刪除 | 「閒置時自動刪除」可讓您指定佇列自動刪除前的閒置間隔。 最短持續時間為 5 分鐘。 |
重複資料偵測 | 錯誤可能會導致用戶端懷疑傳送作業的結果。 重複偵測可讓傳送者重新傳送相同的訊息,或讓佇列或主題捨棄任何重複的複本。 |
安全性通訊協定 | 服務匯流排支援共用存取簽章 (SAS)、角色型存取控制 (RBAC) 和 Azure 資源受控識別等安全性通訊協定。 |
異地災害復原 | 當 Azure 區域或資料中心發生停機時,異地災害復原可讓資料在其他區域或資料中心繼續處理。 |
安全性 | 服務匯流排支援標準 AMQP 1.0 和 HTTP/REST 通訊協定。 |
符合標準和通訊協定
服務匯流排的主要線路通訊協定為進階訊息佇列通訊協定 (AMQP) 1.0,這是開放的 ISO/IEC 標準。 允許客戶針對服務匯流排和內部部署的訊息代理程式 (如 ActiveMQ 或 RabbitMQ) 撰寫應用程式。 若要建立這類抽象概念,AMQP 通訊協定指南可提供詳細資訊。
服務匯流排進階版完全符合 Java/Jakarta EE Java 訊息服務 (JMS) 2.0 API 的規範。
用戶端程式庫
您可透過 Azure SDK 取得完整支援的服務匯流排用戶端程式庫。
- Azure 服務匯流排 (適用於 .NET)
- Azure 服務匯流排程式庫 (適用於 Java)
- Azure 服務匯流排提供者 (適用於 Java JMS 2.0)
- Azure 服務匯流排模組 (適用於 JavaScript 和 TypeScript)
- Azure 服務匯流排程式庫 (適用於 Python)