azure - 如何向所有 worker 角色实例发送消息?

标签 azure azure-storage-queues

我使用 AzureQueue 在角色之间进行通信。我的消息如“GoToMaintenanceMode”、“StopSendingEmails”、“DoNotAcceptRequests”等。但我意识到,当我有多个实例时,它不适用于我的场景,因为队列消息一次只显示 1 个实例。

所以我的问题是除了下面的选项之外,是否有一种优雅的方法来处理这个问题,例如 Role.AllInstances.Run() 等?

我现在使用的方法: 实例查看消息,将其自己的实例 id 添加到消息中并将其放回队列,如果消息包含自己的实例 id,则不会查看消息。

P.S.我不想实现 TCP 监听器,请求本地解决方案(如果有)。

最佳答案

您可以使用 Windows Azure 服务总线主题/订阅而不是队列。它们支持多播(即多个接收器)。

可以在此处找到简短的操作指南

http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/

基本上,您的队列将成为一个主题,您的所有实例都将成为该主题的订阅者。

关于azure - 如何向所有 worker 角色实例发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15186965/

相关文章:

azure - 在 Azure Synapse Analytics 专用 SQL 池中使用 row_number() 提高查询性能

azure - 如何将单个应用服务计划中的 Azure 应用服务分配到虚拟网络中的不同子网

Azure Function Host 在 URI 路径无效的情况下给出消息 :

c# - 使用一个或多个标准 FIFO 队列实现延迟队列

azure-functions - 使用多个 Azure Functions QueueTriggers 监听同一个存储队列

c# - 如何在 web.config 之外安全地使用 ASP.NET 和 Azure 的凭据

azure - 创建可以处理多个队列的 Azure.Storage.Queues 客户端

azure - 由存储队列触发的 Azure Functions 是接受单个消息还是所有消息?

c# - 如何在 C# 中将所有消息存储在 Azure 存储队列上而不出列

azure - Redis 缓存 - 什么时候可以触发大规模驱逐?