我有一个问题。
我认为 Microsoft 的 Azure 队列旨在支持大量消息,如 this post 所建议的那样。我听说您可以存储 100TB 的消息(帐户的最大容量)。因此,您只能对所有辅助角色使用一个队列。
但我发现了一个article它只向我们显示了一个按辅助角色实例排列的队列。
我认为文章的其余部分很严肃,所以我不知道对此有何看法。
在某些情况下多个队列更好吗?
最佳答案
如果您正在考虑存储,那么无论您有 1 个队列还是 100 个队列,限制都是相同的。但您必须了解性能影响。在存储帐户中,性能基于分区(例如,结构 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 网站)。
关于c# - Azure 辅助角色的多个实例有多少个队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222828/