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