選擇訊息佇列解決方案
儲存體佇列和服務匯流排佇列具有稍微不同的功能集。 視您特定解決方案的需求而定,您可以選擇其中一者或同時選擇兩者。
在判斷哪一種佇列技術適合給定解決方案的目的時,解決方案架構設計人員和開發人員應該考慮這些建議。
請考慮使用服務匯流排佇列
身為方案架構設計人員/開發人員,您應該在下列情況中考慮使用服務匯流排佇列:
- 您的解決方案必須接收訊息,而不需要輪詢佇列。 透過服務匯流排,您即可使用服務匯流排支援的 TCP 型通訊協定,利用長時間輪詢接收作業來達成此目的。
- 您的解決方案需要佇列提供保證的先進先出 (FIFO) 排序的傳遞。
- 您的解決方案必須支援自動重複偵測。
- 您想要讓應用程式將訊息當成長時間執行的平行資料流來處理 (訊息是透過訊息上的 [工作階段識別碼] 屬性與資料流相關聯)。 在此模型中,取用應用程式中的每個節點會相競取得串流,而不是訊息。 對取用結點提供串流時,結點可能會使用交易檢查應用程式串流狀態的狀態。
- 當您在傳送或接收佇列發出的多則訊息時,您的解決方案需要交易行為和不可部分完成的作業。
- 您的應用程式會處理超過 64 KB 但不太可能接近 256 KB 或 1 MB 限制的訊息,視所選的服務層級而定 (不過服務匯流排佇列可以處理最多 100 MB 的訊息)。
- 您需要提供角色型存取模型給佇列,並且針對傳送者和接收者提供不同的權限。
請考慮使用儲存體佇列
身為方案架構設計人員/開發人員,您應該在下列情況中考慮使用儲存體佇列:
- 您的應用程式必須在佇列中儲存超過 80 GB 的訊息。
- 您的應用程式需要在佇列中追蹤處理訊息的進度。 如果處理訊息的背景工作角色損毀,這就很有用。 另一個背景工作角色可以接著使用該項資訊,從先前背景工作角色停止的地方繼續處理。
- 您需要針對您佇列所進行所有交易的伺服器端記錄。