我正在尝试利用该KIP https://cwiki.apache.org/confluence/display/KAFKA/KIP-298%3A+Error+Handling+in+Connect指定的2.0.0版本中的Kafka connect增强功能,并且遇到了Robin https://www.confluent.io/blog/kafka-connect-deep-dive-error-handling-dead-letter-queues撰写的这篇不错的博客文章。
这是我的问题
我已在连接器配置中设置errors.tolerance=all
。如果我理解正确,它将不会因不良记录而失败并继续前进。我的理解正确吗?
在我的情况下,使用者不会失败并且保持在RUNNING
状态(这是预期的),但是对于具有不良记录的分区,使用者的偏移量不会向前移动。任何猜测为什么会这样?
我已将我的连接器的errors.log.include.messages
和errors.log.enable
设置为true,但是对于失败的记录,我看不到任何其他日志记录。日志类似于启用这些属性之前所看到的日志。我没有看到类似https://github.com/apache/kafka/blob/5a95c2e1cd555d5f3ec148cc7c765d1bb7d716f9/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/errors/LogReporter.java#L67
某些上下文:
在连接器中,我对每条记录进行了一些转换和验证,如果其中任何一个失败,我将抛出RetriableException
。早些时候,我抛出了RuntimeException
,但是在阅读了RetriableException类的注释后,我变成了RetryWithToleranceOperator。
我试图使其保持良好状态,但请告知是否需要其他上下文。
非常感谢!