消费者没有从卡夫卡消费者提交的消息10消费者

问题描述:

我有要求从主题读取消息,批量并将批量推送到外部系统。如果批处理因任何原因失败,我需要再次使用同一组消息并重复该过程。因此,对于每个批次,每个分区的起点和终点都存储在数据库中。为了实现这个目标,我们根据存储的先前偏移量,通过为读者分配分区,为每个分区创建一个卡夫卡消费者,消费者寻找该位置并开始阅读。我已经关闭了自动提交,并且我没有提交消费者的偏移量。对于每批次,我为每个分区创建一个新的消费者,从存储的最后偏移量读取消息并将其发布到外部系统。您是否发现在消费消息时没有提交消息并跨批次使用同一个消费者组的问题,但是在任何时候,每个分区不会有多个消费者?消费者没有从卡夫卡消费者提交的消息10消费者

您的设计对我来说似乎合理。

向Kafka承诺抵消只是Kafka内部一种方便的内置机制,用于跟踪抵消。然而,没有任何要求使用它 - 你也可以使用任何其他机制来跟踪偏移量(就像在你的情况下使用数据库一样)。

此外,如果您手动分配分区,则无论如何都不会有组管理。所以参数group.id不起作用。有关更多详细信息,请参阅http://docs.confluent.io/current/clients/consumer.html