我计划使用 Microsoft 的一种模式在一组 Web 角色和一组辅助角色之间实现基于队列的通信:
我还不清楚如何管理响应队列。每个发送者(Web 角色)可能应该在消息中包含一个响应队列名称,以便当接收者之一处理该消息时,它仅向原始发送者发出信号。这很重要,因为 Web 角色与 ARR(粘性 session )进行平衡,并且它们使用 SignalR 将处理结果转发回用户浏览器。
我计划在 Web 角色实例开始使用计算机名称作为队列名称时创建响应队列。但由于自动缩放,我很快就会得到一组废弃的队列,不是吗?我可以实现类似队列池之类的东西,将其保留在 SQL DB 中并删除旧的,但我不喜欢这种额外的复杂性。有没有更简单的方法?
最佳答案
您是否考虑过使用Azure Service Bus Topics/Subscriptions ?
您可以将单个主题作为“响应队列”。然后,每个发件人(Web 角色)都可以使用自己的 set of subscription filters 订阅此主题。 (可能检查 Web 角色实例的名称)以接收针对它的响应消息。
它为您节省了维护多个响应队列的复杂性。
关于.net - Azure 响应队列管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40703438/