我想知道如何通过 Azure 服务总线主题和订阅获得某些行为。对于我们的应用程序,我们有 1 个主题和许多订阅。订阅使用过滤器。发布消息后,可以通过一个或多个订阅来过滤该消息。
我们已经使用了 peeklock 和 maxconcurrentcalls 为 1,但这并不能阻止多个消费者并行运行。
我们想要做的是让多个消费者实例订阅同一个订阅。但 * 在给定时间只有一个实例可以处理一条消息。 (这样就保证了处理的顺序)。 * 我们希望这些实例能够实现负载平衡。
因此,最后我们希望对消费者进行负载平衡,同时保持消息顺序并且不进行并行处理。
我们怎样才能实现这一目标?
<小时/>编辑:我想确保消费者能够进行故障转移。希望消费者能够实现负载平衡:我不希望所有事件实例都在一台机器上。
最佳答案
多个消费者会并行工作,因此很难只让一个消费者工作,而让其他消费者待机。
解决方案是单个启动的消费者。
消费者的故障转移应该建立在消费者端,Azure不知道消费者的状态。 因此,第二台机器应该检查第一台机器是否仍在工作,如果没有,则接管,并确保锁定第一台机器,以防该机器再次开始消耗。
关于azure - Azure 服务总线订阅上的负载平衡使用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28472136/