c# - Azure 辅助角色的多个实例有多少个队列?

标签 c# .net architecture azure azure-queues

我有一个问题。

我认为 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/

相关文章:

c# - 一个appdomain可以限制在一个目录吗?

C# 简化字符串数组初始化

c# - 如何向程序集添加上下文帮助

java - 处理大数据文件

asp.net-mvc-3 - 用MVC构建一个大型项目软件

assembly - 我正在尝试学习汇编语言,我有一些疑问,我在下面提到

c# - 自动更新 : Is this secure?

c# - 实体子项上 where 条件的 Linq 表达式

.net - 在 .NET 中优化 System.Drawing 的 PNG 输出

.net - 以编程方式生成 SAS token C#