【发布时间】:2017-03-30 07:49:40
【问题描述】:
我可以使用 Spring Cloud Steam 实现手动 Kafka 偏移管理,如下所示:
- 每当我的消费者处理消息时,它都会将其偏移量提交到数据库中。不喜欢卡夫卡
- 每当我的消费者重新启动时,它都会从数据库中读取最后处理的偏移量,寻找该偏移量并开始处理下一条消息。
【问题讨论】:
标签: java spring apache-kafka spring-cloud-stream
我可以使用 Spring Cloud Steam 实现手动 Kafka 偏移管理,如下所示:
【问题讨论】:
标签: java spring apache-kafka spring-cloud-stream
Spring Cloud Stream 允许您在消费者应用程序中手动确认消息。不知道为什么要将偏移量保存到数据库中(可能是您的需要)。但我想知道使用手动确认模式是否有助于您的情况。
您可以通过将spring.cloud.stream.kafka.bindings.<inboundChannelName>.consumer.autoCommitOffset 设置为 false 来使用手动确认模式,并仅在消费者处理完消息后手动确认消息。你可以找到一个例子here
【讨论】:
latest偏移量开始,是不是有助于实现exactly-once投递?