Spring集成Kafka和管理补偿

时间:2014-06-18 13:29:05

标签: java spring spring-integration apache-kafka

我使用Spring Integration Kafka扩展来读取和处理来自Kafka in Java应用程序的消息。据我所知,它使用的高级消费者API不允许在Zookeeper中完全管理偏移量。

在我的情况下,我们有 auto.commit.enable = false,以便在处理完邮件后向Zookeeper提交偏移量。如果处理失败,那么offset将不会被提交,我们应该尝试在从Zookeeper的偏移量开始的某个配置时间内再次处理相同的消息。但它不起作用,因为我认为,Apache Kafka客户端在内存中保持偏移。

我发现 kafka.consumer.ConsumerIterator 处理偏移量,如果 consumeOffset 大于Zookeeper,那么它将使用消费者读取消息。

所以,我想知道有没有办法在Kafka客户端重置偏移量以开始从Zookeeper中的偏移量读取?

1 个答案:

答案 0 :(得分:1)

你不介意分享你的<int-kafka>配置,并指出你有什么问题吗?

这样做MessageLeftOverTracker.clearMessagesLeftOver()可能就足够了吗?

我与Kafka不太合作,但知道Spring Integration的功能。