使用 Azure Storage Queues

開發 Azure Storage

Shahzad Mian

Content Developer, DataCamp

Storage Queues 入門

  • Storage queues 是訊息佇列服務。
  • 應用程式常同時處理許多請求。
  • 逐一等待每個程序完成會拖慢系統。
  • Azure Storage Queues 讓元件之間可非同步通訊。
  • 非同步傳訊可維持速度與可擴充性。

佇列解決問題

開發 Azure Storage

真實世界的挑戰

訂單堆積的問題與解法

  • Cipher Coffee 的線上商店同時收到數百筆訂單。
  • 沒有佇列時,每筆訂單都得等待前一筆完成。
  • 佇列可先即時接受訂單,稍後再處理。
  • 這能讓網站維持快速,顧客更滿意。
開發 Azure Storage

什麼是佇列?

  • 佇列就像等待被處理的訊息隊伍。
  • 訊息按先進先出(first in, first out)處理。
  • 每則訊息代表一小單位的工作。
  • 完成處理後,訊息會自佇列刪除。

佇列示意圖

開發 Azure Storage

Azure Storage Queues 的運作方式

佇列說明

  • Azure Storage Queues 屬於你的「Storage account」。
  • 訊息最大 64 KB,且具持久性儲存。
  • 應用程式可以:
    • 傳送訊息到佇列。
    • 接收並處理訊息。
    • 完成後刪除訊息。
  • 系統重啟後,訊息仍會保留。
開發 Azure Storage

非同步工作流程

 

 

非同步工作流程

  • 傳送端新增一則訊息,如「處理 Order 2045 的付款」。
  • 背景服務(例如 Azure Function)取回訊息。
  • 成功處理後,刪除該訊息。
  • 此模式讓系統在高負載下仍可擴充且即時回應。
開發 Azure Storage

Cipher Coffee 的實際運作

  • Cipher Coffee 網站將訂單訊息送入佇列。
  • 訂單履行系統從佇列讀取訊息。
  • 訊息會觸發資料庫與金流系統更新。
  • 不會拖慢結帳流程的同時通知吧檯人員。

訂單流程

開發 Azure Storage

佇列的優點

  • 解耦:系統可獨立運作。
  • 可擴充:可增加工作者以加速處理。
  • 可靠:停機期間訊息仍會保留。
  • 整合:可搭配 Azure Functions 與 Logic Apps。

獨立系統

可擴充系統

可靠系統

Screenshot 2025-10-27 at 5.42.20 pm.png

開發 Azure Storage

訊息生命週期

Screenshot 2025-10-27 at 5.48.34 pm.png

  • 訊息會經過三個主要階段:
    • Enqueue:將訊息加入佇列。
    • Dequeue:工作者取出訊息處理。
    • Delete:處理成功後移除訊息。
  • 失敗的訊息會自動重新出現以重試。
開發 Azure Storage

常見使用情境

  • 訂單處理與背景帳務。

訂單圖示

  • 傳送通知電子郵件。

郵件圖示

  • IoT 遙測緩衝。

IoT 圖示

  • 日誌收集與事件管線。
    • 使用佇列以獨立且可重試的作業。
    • 還有更多
開發 Azure Storage

Queues 與 Service Bus 比較

  • Azure Service Bus 用於進階的傳訊情境。
  • Service Bus 支援:
    • 訊息排序與工作階段。
    • 交易與主題/訂閱。
  • Azure Storage Queues 較簡單,適合輕量工作負載且更省成本。
  • Cipher Coffee 以佇列處理訂單並提供即時更新。

Screenshot 2025-10-27 at 6.13.37 pm.png

開發 Azure Storage

一起來練習吧!

開發 Azure Storage

Preparing Video For Download...