Kafka系列之:Dead Letter Queue死信队列DLQ
Kafka系列之:Dead Letter Queue死信队列DLQ
- 一、死信队列
- 二、参数errors.tolerance
- 三、创建死信队列主题
- 四、在启用安全性的情况下使用死信队列
一、死信队列
- 死信队列(DLQ)仅适用于接收器连接器。
- 当一条记录以JSON格式到达接收器连接器时,但接收器连接器配置期望另一种格式,如Avro时,就会发生错误。连接器在发生serde错误时不会停止。相反,连接器会继续处理记录并将错误发送到Dead Letter Queue(DLQ)。可以使用DLQ主题记录中的记录标头来识别和解决出现错误时的问题。通常,这些是可以轻松纠正的配置错误。
注意:
- DLQ主题是根据与连接器API密钥关联的资源自动创建的。
- 不能将接收器连接器的DLQ主题添加到同一接收器连接器消费的主题列表中(以防止无限循环)。
二、参数errors.tolerance
errors.tolerance有两个有效值:
- none(默认值)
- all
当errors.tolerance设置为none时,错误或无效记录会导致连接器任务立即失败,并将连接器置于失败状态。
要解决此问题,必须检查Kafka Connect Worker日志并执行以下操作:
- 检查导致失败的原因。
- 修复问题。
- 重新启动连接器。
当errors.tolerance设置为all时,所有错误或无效记录都被忽略,并且处理继续进行。不会将任何错误写入Connect Worker日志。要确定记录是否失败,必须使用内部度量标准,或计算源中的记录数并将其与处理的记录数进行比较。
提供了一个错误处理功能ÿ