<b>《Windows Azure隊列與服務總線隊列的比較》</b>
<b></b>
<b>一、介紹</b>
微軟的Windows Azure支援兩種類型的隊列機制:一是Windows Azure隊列,二是服務總線隊列。
Windows Azure隊列:是Windows Azure存儲基礎設施的一部分,提供了簡單的基于REST的Get、Put、Peek接口,提供了服務之間的可靠、支援持久化的消息通信。
服務總線隊列:是Windows Azure消息通信基礎設施Broader的一部分,支援諸如釋出/訂閱、遠端Web服務這樣的隊列,以及內建模式。
Windows Azure隊列最先上線,作為專注于Windows Azure存儲服務的隊列存儲機制。而服務總線隊列是服務總線的最後一個版本引入的,專注于中間人消息通信機制,其目的在于應用程式之間的內建或者是應用元件間的多種通信協定、資料交換契約、可信域等。
<b>二、應用場景</b>
兩者相比較,各自的應用場景如下所述。
Windows Azure隊列更适合以下的場景:
1)應用程式在隊列上需要存儲超過5GB的消息,且消息的儲存時間在7天以内;
2)伺服器端需要對所有隊列執行的事務處理做日志記錄的場景;
3)當應用程式需要靈活的租賃來處理消息的場景。
而Azure服務總線隊列更适合以下場景:
1)當應用程式需要完整的基礎.NET WCF的場景;
2)當需要釋出或消費消息批處理的場景;
3)當應用程式處理的消息尺寸在64KB~256KB之間的場景;
4)當應用程式需要“至少傳遞一次”的傳遞保證,且不需要額外的基礎設施元件的場景;
5)當應用程式需要FIFO傳遞的場景;
6)當隊列尺寸不超過5GB的場景;
7)當隊列需要基于角色的通路控制的場景;
8)當應用程式需要自動重複檢測的場景;
9)當應用程式在發送消息到隊列或從隊列接收多種消息時需要原子性保證和事務性的行為的場景;
10)當應用程式指定的工作負載需要超過7天的生存期的場景。