这是有关 Microsoft.Azure.ServiceBus
的一般问题。在 Azure 中,当应用程序扩展时,如果订阅者已扩展多次,Azure 如何处理向该订阅者分派(dispatch)消息。 图 1 显示了典型情况,图 2 显示了我正在谈论的场景:
默认情况下,Azure 是否向所有实例发送相同的消息?或者 Azure 是否“智能”到足以平衡实例之间的消息负载?如果不是,人们通常如何处理这种情况?我只希望一个实例在缩放时接收此消息。
最佳答案
Azure 服务总线将向所有订阅者发送已发布消息的副本。
如果您使用相同的订阅实体横向扩展订阅者,那么您将获得一个完整的消费者场景,其中到达订阅的消息将由单个订阅者实例处理。这是假设处理没有失败并且消息已完成。否则消息将由另一个实例再次处理。
当订阅者的每个实例正在监听不同的物理订阅时,第一种情况将会起作用。
关于Azure 服务总线主题和多实例订阅者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47877312/