Spring Cloud Stream手动偏移管理

Nik*_*kem 5 java spring apache-kafka spring-cloud-stream

我可以使用 Spring Cloud Steam 实现手动 Kafka 偏移管理,如下所示:

  1. 每当我的消费者处理一条消息时,它就会将其偏移量提交到数据库中。不喜欢卡夫卡
  2. 每当我的消费者重新启动时,它都会从数据库中读取最后处理的偏移量,查找该偏移量并开始处理下一条消息。

小智 3

Spring Cloud Stream 允许您在消费者应用程序中手动确认消息。不确定为什么你想将偏移量保留到数据库中(可能这就是你的需要)。但我想知道使用手动确认模式是否对您的情况有帮助。

您可以通过设置spring.cloud.stream.kafka.bindings.<inboundChannelName>.consumer.autoCommitOffset为 false 来使用手动确认模式,并且仅在消费者处理消息后才手动确认消息。你可以在这里找到一个例子

  • 问题出在重启上。我想严格控制消费者重新启动后从哪里开始,以便实现一次性交付。 (2认同)