我使用AzureQueue在角色之间进行通信。我的消息如“GoToMaintenanceMode”,“StopSendingEmails”,“DoNotAcceptRequests”等。但我意识到,当我有多个实例时,由于队列消息,它将无法用于我的场景,一次只显示1个实例。
所以我的问题是旁边的选项是否有一种优雅的方式来处理像Role.AllInstances.Run()等问题?
我正在使用的方法: 实例查看消息,将其自己的实例ID添加到消息中并将其放回队列,如果消息包含它自己的实例ID,则不会查看消息。
P.S。我不想实现TCP侦听器,如果有的话请求本机解决方案。
答案 0 :(得分:10)
您可以使用Windows Azure Service Bus主题/订阅而不是队列。它们支持多播(即多个接收器)。
可在此处找到简短的操作指南
http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/
基本上,您的队列将成为主题,您的所有实例都将成为主题的订阅者。
答案 1 :(得分:0)
因为您不想要TCP侦听器选项或服务总线选项。如何使用多个队列扩展您的相同想法。 Instance1将从Queue1读取,Instance2将从Queue2读取,依此类推。您需要处理的唯一事情是队列数量和同时向所有队列添加队列消息。