在Azure Service Bus订阅上负载平衡使用者

时间:2015-02-12 07:56:03

标签: azure servicebus azureservicebus

我想知道如何通过Azure Service Bus主题和订阅获得某些行为。对于我们的应用程序,我们有1个主题和许多订阅。订阅使用过滤器。发布消息时,可以通过一个或多个订阅进行过滤。

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

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

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

我们如何实现这一目标?


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

1 个答案:

答案 0 :(得分:1)

多个消费者将并行工作,因此很难让一个人工作并让其他人待命。

解决方案是一个单一的消费者。

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