Kafka Stream - 关闭自动提交时如何处理错误

Kafka Stream -How to handle error when auto commit turn off

对于 Kafka Streams,如果我们将 commit.internal.ms 配置设置为 Long.MAX_VALUE 这将有效避免 Kafka Streams 自动提交但仅在调用较低级别处理器后才提交 api context.commit(),我们可以控制commit还是不commit?如果是,那么在出现问题或消息包含格式错误的情况下,我们如何从主题中删除这些消息?

资源: https://docs.confluent.io/current/streams/index.html

您无法从主题中删除消息...Kafka 主题是 append-only 不可变日志。

另请注意,如果您提交了一条消息,它也不会从主题中删除。 Kafka 不是消息队列---提交offsets仅意味着跟踪日志中的当前进度(即offset),但不会删除任何消息。 (你可以把它想象成一个“游标”。)

因此,如果邮件格式不正确并且您不想处理它,则可以跳过它。实际上没有理由为这种情况设置较大的提交间隔并进行手动提交。