错误处理

Neo4j Kafka 连接器的 sink 实例支持 Kafka Connect 错误处理机制,以处理不良的输入数据。要使用此功能,可使用 表 1,“死信队列配置参数” 中描述的配置设置。

表 1. 死信队列配置参数
名称 描述

errors.tolerance

配置 sink 过程中的错误容忍度。默认值为 none,会导致任何错误立即导致连接器任务失败并停止处理剩余消息。将其设置为 all 可更改行为,跳过有问题的消息并继续处理其余消息。

可选 allnone。默认值:none

如果 error.tolerance: all,在定义了死信队列时,仍会报告有问题的消息。

errors.log.enable

如果设置为 true,则每个错误以及失败操作的详细信息和有问题的消息都会写入 Kafka Connect 应用日志。默认情况下此值为 'false',因此仅报告未被容忍的错误。

可选 truefalse。默认值:false

errors.log.include.messages

指定是否在日志中包含导致失败的 Kafka 消息。如果启用,主题、分区、偏移量和时间戳会被记录。默认情况下此值为 'false',从而避免将消息键、值和头信息写入日志文件。

可选 truefalse。默认值:false

errors.deadletterqueue.topic.name

指定用于死信队列(DLQ)的主题名称,该队列用于在 sink 过程中出现错误的消息。当设置了主题名称时,失败的消息将被发送到 DLQ。默认情况下主题名称为空,表示不会将消息发送到 DLQ。

Default: ``

errors.deadletterqueue.context.headers.enable

如果设置为 true,则会向发送到 DLQ 主题的消息添加包含错误上下文的头信息。为避免与原始记录的头信息冲突,所有错误上下文头键都会以 __connect.errors 开头。

将会发送的错误头信息包括:

  • __connect.errors.topic

  • __connect.errors.partition

  • __connect.errors.offset

  • __connect.errors.connector.name

  • __connect.errors.task.id

  • __connect.errors.stage

  • __connect.errors.class.name

  • __connect.errors.exception.class.name

  • __connect.errors.exception.message

  • __connect.errors.exception.stacktrace

可选 truefalse。默认值:false

errors.deadletterqueue.topic.replication.factor

指定创建死信队列(DLQ)主题时使用的复制因子(如果该主题尚不存在)。默认值为 3,如果您在单节点 Kafka 集群上运行,则需要将其设置为 1。复制因子。

Default: 3

在此版本的连接器中,我们还处理在消息处理以及将消息写入目标 Neo4j 数据库时可能出现的错误。有关 Kafka Connect 框架如何处理错误管理的更多细节,请查看以下博客文章:错误处理与死信队列