我的应用程序每秒将通过多个 Web 角色实例接收 1000 多个请求/事务。这些角色将为跨多个存储表的每个事务写入记录(随机分布 Azure 的 500 个事务/秒限制)。现在,我需要一种可靠的方法来使用多个 Worker 角色处理/聚合这些数据,并将结果写入我的 SQL 数据库。AKA,这需要水平扩展。
我需要保留/存档存储表后处理中的所有事务,因此我可以使用一组表用于队列,并在处理它们时将它们移动到存档表中,或者也许有一种方法可以在一张桌子上做这个,不确定。
对于在我的工作角色中分配这些队列中的当前工作负载的机制,您有什么建议?显然,每个角色都必须知道其他角色在做什么,所以他们只处理无人认领的交易。我认为每个角色将从队列中检索 1000 条记录作为单个工作负载,并且多个工作角色可能在同一个队列上工作。
我是否应该将工作角色“状态”保存在缓存中,也许在 SQL 服务器中。
非常感谢您的建议。