【问题标题】:Load balancing consumers on Azure Service Bus subscriptionAzure 服务总线订阅上的负载平衡使用者
【发布时间】:2015-02-12 07:56:02
【问题描述】:

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

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

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

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

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


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

【问题讨论】:

  • 如果有序处理那么重要,为什么要使用多个消费者?现在所有工作都按顺序处理,所有消费者都在等待下一个
  • 我已经编辑了问题:我想要对消费者进行故障转移。但他们使用相同的数据存储。所以我需要对消息进行排序并且不需要并行处理。
  • 消费者的故障转移应该在消费者端构建,Azure 不知道消费者的状态。
  • 如果您发布答案,我可以接受,因为我认为您可能是对的。

标签: azure servicebus azureservicebus


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2013-04-18
    • 1970-01-01
    相关资源
    最近更新 更多