工作階段、自動轉送與分割區

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

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

工作階段總覽

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

工作階段總覽

  • 依工作階段排序
    • 以 Session ID 實作
    • 每個使用者各一個工作階段
    • 訊息保持順序
  • 輕量狀態可用來:
    • 處理重啟
    • 建立乾淨的 FIFO 佇列
    • 擴充至多個並行工作階段

Service Bus Sessions

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

死亡信件與自動轉送

死亡信件佇列(Dead lettering)

  • 失敗的訊息
  • 解除主訊息路徑阻塞

自動轉送(Auto-forwarding)

  • 轉至其他佇列或主題
  • 用於診斷流程
  • 用於重試

Dead-lettering

Auto-forwarding

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

重複偵測

  • 網路連線可能中斷
    • 會導致訊息重送
    • 重複處理有風險
  • 重複偵測:
    • 使用唯一訊息 ID
    • 搭配時間視窗
    • 丟棄相同 ID 的訊息
  • 每則訊息僅處理一次

Duplictae diagram

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

高輸送量的分割區

Partitions in Service Bus

  • 分散至多個代理程式
    • 平行處理訊息
    • 提升復原力
  • 仍使用同一套 API
    • 由 Service Bus 管理分配
    • 同一組連線字串
開發 Azure 事件導向與訊息導向解決方案

整合重點

Service Bus summary

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

一起來練習吧!

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

Preparing Video For Download...