apache-kafka - Kafka Source Connector 端是否可以有 DeadLetter Queue 主题?
问题描述
Kafka Source Connector 端是否可以有 DeadLetter Queue 主题?我们对 IBM MQ Source 连接器处理的事件有一个挑战,它正在处理 N 条消息但发送 N-100 条消息,其中 100 条消息是 Poison 消息。但是从下面 Robin Moffatt 的博客中,我可以看到在源连接器端有 DLQ 是不可行的。
https://www.confluent.io/blog/kafka-connect-deep-dive-error-handling-dead-letter-queues/ 上面文章中提到的以下注意事项: 注意源连接器没有死信队列。
1Q)请确认是否有人为 IBM MQ 源连接器使用了 Deadletter 队列(以下是文档) https://github.com/ibm-messaging/kafka-connect-mq-source
2Q) 有人在任何其他源连接器端使用 DLQ 吗?3Q) 为什么在源连接器端没有 DLQ 会受到限制?
谢谢。
解决方案
errors.tolerance
也可用于源连接器 -参考文档
但是,如果将其与接收器进行比较,则不,DLQ 选项不可用。相反,您需要使用事件详细信息解析连接器日志,然后将其通过管道传输到您自己的主题。
总的来说,源连接器将如何决定哪些事件是坏的?网络连接异常意味着根本不会读取任何消息,因此不会产生任何内容。如果消息无法序列化为 Kafka 事件,那么它们也将无法生成……您的选择是快速失败,或者跳过并记录。
如果您只想按原样发送二进制数据,那么使用 ByteArrayConverter 类可以完成任何事情都不会是“有毒的”,但这对于 Kafka Connect 来说并不是一个很好的用例,因为它主要是围绕结构化类型设计的可解析模式,但至少使用该选项,数据进入 Kafka,您可以使用 Kstreams 从坏消息中分支/过滤好消息