【问题标题】:Azure Event Hub - consuming messages one by oneAzure 事件中心 - 一条一条地使用消息
【发布时间】:2021-08-08 14:54:20
【问题描述】:

这是我想要的状态吗? 300 条传出消息(取自天蓝色事件中心指标)即使我只处理了一个事件?我很好奇只有​​在前一个事件被完全处理和检查点存储时才使用事件。

否则,如果消费者消费了多个消息,并且在 on_event 回调完成后设置了检查点(在我的情况下,on_event 回调需要 10 秒),那么将另一个消费者添加到同一个消费者组并重新平衡分区所有权导致消耗许多重复项。

我知道可能会发生重复的那个窗口,但我希望尽可能少地复制。

仅供参考,我使用 python 同步消费者。

【问题讨论】:

  • 你是要一一消费还是我理解不正确?
  • 正是我的意思。

标签: python azure azure-eventhub consumer


【解决方案1】:

如果您真的想一条一条地使用消息,那么事件中心不是正确的解决方案。你应该使用Azure Service Bus Queues

事件中心不是为一对一的消息处理方案而设计的。相反,它是为低延迟/高吞吐量而构建的。您可能可以通过仅拥有一个分区(并且仅在一个消费者组中只有一个消费者)来接近,但如果检查点失败或类似情况,您将始终面临处理已处理事件的风险。

如果您担心重复,请注意大多数消息传递解决方案都具有至少一次的消息传递模型 (source)。所以要确保你的处理逻辑是幂等的。

【讨论】:

  • 太棒了。基本上队列就是答案不是吗?加油!
猜你喜欢
  • 2021-07-28
  • 2021-10-26
  • 1970-01-01
  • 2020-02-18
  • 2023-02-14
  • 1970-01-01
  • 2021-04-16
  • 2014-07-18
  • 1970-01-01
相关资源
最近更新 更多