Azure Service Bus 入門

開發 Azure 事件導向與訊息導向解決方案

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

Queue Storage vs Service Bus

Queue Storage

  • 簡單待辦清單
  • 無進階功能
  • 每則訊息處理一次

Service Bus

  • 企業級訊息系統
  • 更強的遞送保證
  • 更豐富的路由
  • 協調功能
  • 可有多個消費者

Queue Storage

Service Bus

開發 Azure 事件導向與訊息導向解決方案

Service Bus 佇列

  • 點對點:
    • 產生者送出訊息後
    • 一個消費者取用
    • 訊息僅處理一次
  • 類似 Queue Storage 的運作

Service Bus logo

開發 Azure 事件導向與訊息導向解決方案

Service Bus 主題(Topics)

  • 發佈/訂閱模型
    • 多個產生者送出訊息
    • 多個消費者可收到同一訊息
  • 訂閱可篩選訊息:
    • 各訂閱只收相關內容
  • 佇列像單一收件匣
  • 主題像郵件寄送清單

Service Bus Topic

開發 Azure 事件導向與訊息導向解決方案

訊息可靠性

  • 內建可靠性:
    • 內建處理失敗情況
    • 自動重試
  • 死信佇列:
    • 存放處理失敗的訊息
    • 可檢視訊息內容

Message reliability

開發 Azure 事件導向與訊息導向解決方案

重複偵測

  • 重複偵測 可避免訊息被處理兩次。

  • 若傳送端重試、同一訊息再次到達,會以其 message ID 偵測。

  • 在設定的時間窗內,重複項會被 丟棄

  • 即使網路重試,亦可達到 近似僅一次處理

Service Bus duplicate detection

開發 Azure 事件導向與訊息導向解決方案

有序處理

Service Bus Sessions

  • Service Bus Sessions 可啟用有序處理。

  • 相關訊息共用 Session ID(例如同一訂單的所有更新)。

  • 每個工作階段一次只交付給 一個消費者

  • 訊息順序在 同一工作階段內 得以保留,消費者可維持輕量狀態。

  • 平行 處理多個工作階段,各自仍保持順序。

開發 Azure 事件導向與訊息導向解決方案

一起來練習吧!

開發 Azure 事件導向與訊息導向解決方案

Preparing Video For Download...