错误处理

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

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

errors.tolerance

配置接收器过程中的错误容忍度。默认值为 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) 用到的主题名称。当设置主题名称时,失败的消息将发送到 DLQ。默认情况下,主题名称为空白,表示不会将任何消息发送到 DLQ。

默认值:``

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。复制因子。

默认值:3

在本版本的连接器中,我们还处理了在消息处理期间以及在将消息写入目标 Neo4j 数据库时可能发生的错误。有关 Kafka Connect Framework 如何处理错误管理的更多详细信息,请查看错误处理和死信队列的博客文章。