我有一个问题。
我认为Microsoft的Azure Queue设计为支持this post建议的大量消息,我读过你能够存储100TB的消息(一个帐户的最大容量)。因此,您只能为一个辅助角色使用一个队列。
但是我发现article只显示了一个按工作人员角色实例排队的队列。
我认为文章的其余部分是严肃的,所以我不知道是怎么想的。
在某些情况下,多个队列是否更好?
答案 0 :(得分:3)
如果您正在查看存储空间,如果您有1个队列或100个队列并不重要,则限制是相同的。但你必须知道性能影响。在存储帐户中,性能基于分区(例如,Fabric Controller能够为热分区分配更多资源)。
当您使用Windows Azure存储队列时,1个队列是1个分区。这带有一些可扩展性目标。对于队列,这意味着1个队列应该能够处理500条消息/秒。在此处阅读更多相关信息:Windows Azure Storage Abstractions and their Scalability Targets
现在,这是您定义架构时的一个重要因素,它取决于您将使用队列的内容。如果你永远不会期望达到每秒500条消息,你可以为所有工人提供一个队列。但是如果你想超过这个限制(即使它不会马上发生),你需要建立一个好的架构来处理这个问题。这并不仅仅意味着1名工人的1个队列。考虑不同进程的不同队列,在子进程中拆分进程并在每个子进程中使用队列,让工作者轮询不同的队列,考虑循环系统,...
还要考虑查看像这样的现有实现: Partitioned CloudQueue - Azure Storage Queue without scalability limits。我还建议你查看Customer Advisory Team的网站,他们有很多关于队列可扩展性的有趣文章(你引用的第一篇文章来自CAT网站)。