【发布时间】:2025-12-10 10:20:07
【问题描述】:
我有一个自定义的 Kafka 消费者,我用它来向 REST API 发送一些请求。 根据 API 的响应,我要么提交偏移量,要么在不提交的情况下跳过消息。
小例子:
while (true) {
ConsumerRecords<String, Object> records = consumer.poll(200);
for (ConsumerRecord<String, Object> record : records) {
// Sending a POST request and retrieving the answer
// ...
if (responseCode.startsWith("2")) {
try {
consumer.commitSync();
} catch(CommitFailedException ex) {
ex.printStackTrace();
}
} else {
// Do Nothing
}
}
}
现在,当来自 REST API 的响应不是以 2 开头时,不会提交偏移量,但不会重新使用消息。如何强制消费者重新使用未提交偏移量的消息?
【问题讨论】:
标签: java apache-kafka kafka-consumer-api