如何解决Azure 事件中心 - 一条一条消费消息
这是我想要的状态,例如即使我只处理了一个事件,也有 300 条传出消息(取自 azure 事件中心指标)?我很好奇如何仅在前一个事件被完全处理和检查点存储时使用事件。
否则,如果消费者消费了多个消息,并且在 on_event 回调完成后设置了检查点(在我的情况下,on_event 回调需要 10 秒),然后将另一个消费者添加到同一个消费者组并重新平衡分区所有权导致消耗许多重复项。
我知道可能会发生重复的那个窗口,但我希望它们尽可能少。
仅供参考,我使用 python 同步消费者。
解决方法
如果您真的想一条一条地使用消息,那么事件中心不是正确的解决方案。您应该使用 Azure Service Bus Queues
事件中心不是为一对一的消息处理方案设计的。相反,它是为低延迟/高吞吐量而构建的。您可能可以通过只有一个分区(并且只有一个消费者组中只有一个消费者)来接近,但您将始终面临处理已处理事件的风险,以防检查点失败或类似情况。
如果您担心重复,请注意大多数消息传递解决方案都有至少一次的消息传递模型 (source)。因此,请确保您的处理逻辑是幂等的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。