代码之家  ›  专栏  ›  技术社区  ›  Vivek Nuna Chetan sabhaya

Azure服务总线主题上的同一消息由同一服务的多个实例接收

  •  0
  • Vivek Nuna Chetan sabhaya  · 技术社区  · 1 年前

    我有一个订阅了Azure服务总线主题的服务。我的服务正在Kubernetes中的多个pod上运行。理想情况下,当主题上有消息时,一个实例应该选择并处理它。但有时多个实例会收到相同的消息。原因可能是什么?

    1 回复  |  直到 1 年前
        1
  •  0
  •   Sean Feldman    1 年前

    通常有以下罪魁祸首:

    1. 检查处理时间是否不超过通过在订阅上设置的最长时间 LockDuration 。如果是这种情况,您将锁定丢失的消息和其他实例。这是竞争消费者模式的正常行为。
    2. 验证您的总体处理时间不超过5分钟(目前是服务总线的最长时间)。如果是这种情况,您的代码应该发出一个请求来延长锁定持续时间,或者如果您使用 ServiceBusProcessor 由SDK提供。
    3. 确保所有实例都从同一订阅接收。如果每个实例都有自己的订阅,那么消息将有多个重复项。