實務上, 在我們設計一個系統的時候, 為了提升Scalabilty 最常見的方法是使用Queue來
降低各個服務元件之間的耦合度
在Azure 上, 目前有兩種Queue可以讓我們使用
Azure Storage Queue
基本上Storage Queue 可放64 Kb以下的訊息, 並且提供最常7天的訊息存留時間(Time To Live, TTL), 以及最大儲存上限200TB
Azure Service Bus Queue
但若是想要比較進階的功能, 則可以選擇Service Bus Queue
像是長輪詢(Long Polling), 保證先進先出(First In First Out, FIFO), 重複資料自動刪除(Duplicate detection), 自動處理無效訊息(Auto Dead Littering)...等等,
這些都是Service Bus Queue 獨有的功能
除此之外Service Bus Queue可以允許的訊息大小比Storage Queue更大, 可以大到265 Kb, 而且訊息儲存時間(TTL)無上限
唯一的缺點就是最多只能放總共80GB的訊息量
總結
簡單的說Service Bus Queue比Storage Queue提供更多的功能, 但若實務上用不到或是訊息總量的需求超過80GB, 那麼Storage Queue則是最佳的選擇
REF
https://docs.microsoft.com/zh-tw/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted
https://feedback.azure.com/forums/217298-storage/suggestions/3588788-enable-long-polling-on-azure-storage-queues
https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions
https://www.todaysoftmag.com/article/1260/what-messaging-queue-should-i-use-in-azure
留言
張貼留言