【发布时间】:2016-02-13 09:35:17
【问题描述】:
我有一个 kafka 集群设置。大多数时候,消费者在无人看管的情况下运行。它读取消息并调用外部 API。但是如果外部 API 出现故障(这种情况很少发生),我需要在固定的时间内重试消息。如果重试失败,我需要停止消费者并在固定时间后重新开始。
问题是我需要处理来自主题的最后一条读取消息。有没有一种方法可以在阅读消息之前将 zookeeper 偏移量重置为一个?(即减少一条消息的偏移量)。所以下次我启动消费者时,我可以再次阅读消息。
这可以通过使用低级消费者来完成。但是有没有办法对高级消费者做到这一点?
我正在使用基于 Java 的消费者客户端。
【问题讨论】:
-
如果适用,一个非常简单的解决方案是在停止时将主题中的消息推回。你甚至可以有一个专门的主题,并从两者中消费。
标签: java apache-kafka apache-zookeeper kafka-consumer-api