[英]Azure Event Hub - consuming messages one by one
即使我只处理了一个事件,我有例如 300 条传出消息(取自 azure 事件中心指标)是否是所需的 state? 我很好奇如何仅在前一个事件被完全处理和检查点存储时才使用事件。
否则,如果消费者消费了多个消息,并且在 on_event 回调完成后设置了检查点(在我的情况下,on_event 回调需要 10 秒),那么将另一个消费者添加到同一个消费者组并重新平衡分区所有权会导致消耗很多重复。
我知道 window 可能会发生重复,但我希望它们尽可能少。
仅供参考,我使用 python 同步消费者。
如果您真的想一一消费消息,那么事件中心不是正确的解决方案。 您应该使用Azure 服务总线队列
事件中心不是为一一消息处理方案而设计的。 相反,它是为低延迟/高吞吐量而构建的。 您可能可以通过仅拥有一个分区(并且仅在一个消费者组中只有一个消费者)来接近,但如果检查点失败或类似情况,您将始终冒着处理已处理事件的风险。
如果您担心重复,请注意大多数消息传递解决方案至少一次传递 model 消息( 来源)。 因此,请确保您的处理逻辑是幂等的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.