使用 Azure Storage Queues
開發 Azure Storage
Shahzad Mian
Content Developer, DataCamp
Storage Queues 入門
Storage queues 是訊息佇列服務。
應用程式常同時處理許多請求。
逐一等待每個程序完成會拖慢系統。
Azure Storage Queues 讓元件之間可非同步通訊。
非同步傳訊可維持速度與可擴充性。
真實世界的挑戰
Cipher Coffee 的線上商店同時收到數百筆訂單。
沒有佇列時,每筆訂單都得等待前一筆完成。
佇列可先即時接受訂單,稍後再處理。
這能讓網站維持快速,顧客更滿意。
什麼是佇列?
佇列就像等待被處理的訊息隊伍。
訊息按先進先出(
first in, first out
)處理。
每則訊息代表一小單位的工作。
完成處理後,訊息會自佇列刪除。
Azure Storage Queues 的運作方式
Azure Storage Queues 屬於你的「Storage account」。
訊息最大 64 KB,且具持久性儲存。
應用程式可以:
傳送訊息到佇列。
接收並處理訊息。
完成後刪除訊息。
系統重啟後,訊息仍會保留。
非同步工作流程
傳送端新增一則訊息,如「處理
Order 2045
的付款」。
背景服務(例如
Azure Function
)取回訊息。
成功處理後,刪除該訊息。
此模式讓系統在高負載下仍可擴充且即時回應。
Cipher Coffee 的實際運作
Cipher Coffee 網站將訂單訊息送入佇列。
訂單履行系統從佇列讀取訊息。
訊息會觸發資料庫與金流系統更新。
不會拖慢結帳流程的同時通知吧檯人員。
佇列的優點
解耦:
系統可獨立運作。
可擴充:
可增加工作者以加速處理。
可靠:
停機期間訊息仍會保留。
整合:
可搭配 Azure Functions 與 Logic Apps。
訊息生命週期
訊息會經過三個主要階段:
Enqueue:
將訊息加入佇列。
Dequeue:
工作者取出訊息處理。
Delete:
處理成功後移除訊息。
失敗的訊息會自動重新出現以重試。
常見使用情境
訂單處理與背景帳務。
傳送通知電子郵件。
IoT 遙測緩衝。
日誌收集與事件管線。
使用佇列以獨立且可重試的作業。
還有更多
Queues 與 Service Bus 比較
Azure Service Bus
用於進階的傳訊情境。
Service Bus 支援:
訊息排序與工作階段。
交易與主題/訂閱。
Azure Storage Queues
較簡單,適合輕量工作負載且更省成本。
Cipher Coffee 以佇列處理訂單並提供即時更新。
一起來練習吧!
開發 Azure Storage
Preparing Video For Download...