Azure 服务总线订阅上的负载平衡使用者

Load balancing consumers on Azure Service Bus subscription

我想知道如何通过 Azure 服务总线主题和订阅获得特定行为。对于我们的应用程序,我们有 1 个主题和许多订阅。订阅使用过滤器。当一条消息被发布时,它可以被一个或多个订阅过滤。

我们已经使用了 1 的 peeklock 和 maxconcurrentcalls,但这并不能阻止多个消费者并行 运行。

我们要做的是让多个消费者实例订阅同一个订阅。但 * 只有一个实例可以在给定时间处理一条消息。 (以这种方式保证处理顺序)。 * 我们希望这些实例是负载平衡的。

因此,最后我们希望在保持消息顺序且不进行并行处理的同时对我们的消费者进行负载平衡。

我们怎样才能做到这一点?


编辑:我想确保我有消费者的故障转移。希望消费者是负载平衡的:我不希望所有活动实例都在一台机器上。

多个consumers会并行工作,很难让一个consumers工作,其他的standby。

解决方案是单启动消费者。

消费者的故障转移应该建立在消费者端,Azure 不知道消费者的状态。 所以第二台机器应该检查第一台机器是否还在工作,如果没有,接管,并确保锁定第一台机器以防这台机器再次开始消耗。