2012-06-27 41 views
2

我有一個問題。一個天青工人角色的多個實例有多少隊列?

我認爲微軟的Azure隊列設計支持大量的消息,如this post所建議的,我讀了你能夠存儲100TB的郵件(最大容量的帳戶)。因此,對於所有工作者角色,只能使用一個隊列。

但我找到了一個article,它顯示我們只有一個由worker角色實例組成的隊列。

我認爲文章的其餘部分是嚴肅的,所以我不知道這是怎麼想的。

在某些情況下多個隊列更好嗎?

回答

3

如果您正在查看存儲空間,如果您有1個隊列或100個隊列,則限制是相同的。但是你必須知道性能影響。在存儲帳戶中,性能基於分區(例如,Fabric Controller可以將更多資源分配給熱分區)。

當您使用Windows Azure存儲隊列時,1個隊列是1個分區。這與一些可擴展性目標。對於隊列,這意味着1隊列應該能夠處理500條消息/秒。閱讀更多關於它的地方:Windows Azure Storage Abstractions and their Scalability Targets

現在這是一個重要的因素,當你定義你的架構,這取決於你將要使用的隊列。如果你永遠不會期望達到每秒500條消息,那麼對於你所有的工人來說,你應該沒有問題。但是,如果你認爲超過這個限制(即使它不會立即發生),你需要建立一個好的架構來處理這個問題。這並不僅僅意味着1個工人的排隊。考慮不同的進程不同的隊列,拆分子進程中的進程,並使用每個子進程的隊列,讓你的工作者輪詢不同的隊列,想象一個循環系統......

也考慮看看這樣的現有實現一個: Partitioned CloudQueue - Azure Storage Queue without scalability limits。我還建議你看看Customer Advisory Team的網站,他們有許多關於隊列可伸縮性的有趣文章(你引用的第一篇文章來自CAT網站)。

+0

好的,我有很多工作,但他們很慢,所以我不認爲達到500信息/秒。對於一個工作人員角色的所有實例,我沒有問題。 Thx很多爲您的答案和鏈接。 – Benjamin