【发布时间】:2017-10-26 19:56:21
【问题描述】:
我正在构建一个消费者,我想确保来自 Kafka 主题的每条消息都被相应地读取和处理。虽然自动提交功能很有吸引力,但我希望完全控制偏移量——也就是说,我只想在处理顺利的情况下提交偏移量。
但是,我不确定将自动提交设置为 false 的缺点。关闭自动提交的优点和缺点是什么?会不会执行的更慢?具有相同消费者名称的多个消费者是否会对此实现有问题?
【问题讨论】:
标签: apache-kafka commit consumer
我正在构建一个消费者,我想确保来自 Kafka 主题的每条消息都被相应地读取和处理。虽然自动提交功能很有吸引力,但我希望完全控制偏移量——也就是说,我只想在处理顺利的情况下提交偏移量。
但是,我不确定将自动提交设置为 false 的缺点。关闭自动提交的优点和缺点是什么?会不会执行的更慢?具有相同消费者名称的多个消费者是否会对此实现有问题?
【问题讨论】:
标签: apache-kafka commit consumer
性能实际上取决于您如何实现它 - 您可以同步或异步提交偏移量,对于您希望对提交偏移量这一事实的确定程度有不同的保证。通常,当您不手动提交偏移量时,您可以对其进行更多控制 - 如您所愿。但是有一些注意事项,例如,commitSync 或 commitAsync 正在提交通过轮询获得的偏移量,因此如果您在处理循环的中间提交,并且应用程序崩溃,那么您将丢失数据。
“Kafka. The Definitive Guide”有很大一部分是关于提交和偏移的——我建议阅读它——Confluent 分发PDF of the book for free。
【讨论】: