0

我有这些 X 数量的工作角色,它们将使用多个线程处理 Azure 队列。在这些队列中流动的数据相当简单(对于这个 Client_ID,我们有动作 A、B 或 C,每个事务一个动作)但是会有很多,每秒超过 5000 个事务。现在我需要以显示 Client_ID 的格式聚合这些,A 类型的 43 个事务,B 的 20 个事务,C 的 11 个事务。基本上总结了它们。但是队列上的 GetMessages 只能从队列中检索 32 条消息。

我的问题是 - 我是否应该一直检索 32 直到我说 1000,然后遍历它们并总结它们?或者将总数保存在列表、队列或缓存中?

你会为我的场景推荐最佳聚合器机制,知道可能有 10 个工作角色和 5 个线程始终从这些队列获取消息?

4

1 回答 1

0

首先,我认为阅读这篇广受欢迎的文章和有关在 Azure 中构建可扩展计数器的相关Cloud Cover Episode会很好。

简而言之,它所说的是每个工作角色都保留一个线程安全计数器(在您的情况下,针对每个客户端和消息类型)。线程在处理每条消息时更新这些计数器。然后,后台线程会定期将该值写入您的底层存储。

于 2013-02-27T19:42:42.833 回答