对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

连接器错误处理属性

使用以下配置设置指定 MongoDB Kafka connector 如何处理错误并配置死信队列(DLQ)。

有关按类别组织的接收器连接Connector配置设置列表,请参阅接收器连接器配置属性指南。

名称
说明

mongo.errors.tolerance

类型:字符串


描述:Connector出现错误时是否继续处理消息。允许Connector覆盖errors.tolerance Kafka集群设置。当设立为 时,Connector会报告任何错误并阻止进一步处理其余消息。设立为 时,Connector会忽略任何有问题的消息。设立为

none

all时,Connector仅允许数据错误,并在出现所有其他错误时失败。要学习;了解有关错误处理策略的更多信息,请参阅处理错误页面。此属性会覆盖

data




Connect 框架的errors.tolerance属性。默认值:继承

errors.tolerance
设置中的值。接受值:"none""all"

mongo.errors.log.enable

类型:布尔值


描述:Connector是否应将包括失败操作在内的错误详细信息写入日志文件。Connector将错误分类为“可容忍”错误或“不允许”使用 或 设置。当设立为 时,Connector会记录“容忍的”和和“not容忍”错误。当设立为 时,Connector将记录“不允许”错误。此属性会覆盖错误。日志。errors.tolerance mongo.errors.tolerance

true
false


Connect 框架的启用属性。默认值:

false
接受的值:truefalse

errors.log.include.messages

类型:布尔值

说明:
连接器是否应在记录错误时包含无效消息。无效消息包含记录密钥、值和头部等数据。

默认: false
接受值truefalse

errors.deadletterqueue.topic.name

类型:字符串


描述:用作死信队列(DLQ)的主题名称。如果为空,则Connector不会向死信队列(DLQ)发送任何无效消息。要学习;了解有关死信队列(DLQ)的更多信息,请参阅死信队列配置示例。默认值:



""
接受的值:有效的Kafka主题名称

errors.deadletterqueue.context.headers.enable

Type: boolean

Description:
Whether the connector should include context headers when it writes messages to the dead letter queue.

To learn more about the dead letter queue, see the Dead Letter Queue Configuration Example.

To learn about the exceptions the connector defines and reports through context headers, see Bulk Write Exceptions.

Default: false
Accepted Values: true or false

errors.deadletterqueue.topic.replication.factor

类型:整数


描述:要复制死信队列(DLQ)主题的节点数。如果您运行的是单节点Kafka集群,则必须将其设立为 。要学习;了解有关死信队列(DLQ)的更多信息,请参阅死信队列配置示例。默认值:1



3
接受的值:有效的节点数

执行批量写入时,connector可以将以下异常作为上下文标头报告到死信队列(DLQ):

名称
说明

WriteException

描述:
包含Connector遇到的 BulkWriteError

的详细信息。消息格式:

此类按以下格式输出错误:

v=%d, code=%d, message=%s, details=%s

上述消息中的字段包含以下信息:

  • vWriteException消息格式的版本。 此字段有助于解析此异常生成的消息。 对于版本 3.0 的connector ,消息格式的版本为 1。

  • code:与错误相关的代码。 要了解更多信息,请参阅 getCode() 方法文档。

  • message:与错误相关的消息。要学习;了解更多信息,请参阅 getMessage() 方法文档。

  • details:与 JSON 格式的错误相关的详细信息。 要了解更多信息,请参阅以下方法文档:

WriteConcernException

描述:
Contains details of a WriteConcernError your connector encountered.

Message Format:

此类按以下格式输出错误:

v=%d, code=%d, codeName=%d, message=%s, details=%s

上述消息中的字段包含以下信息:

  • vWriteConcernException消息格式的版本。 此字段有助于解析此异常生成的消息。 对于版本 3.0 的connector ,消息格式的版本为 1。

  • code:与错误相关的代码。 要了解更多信息,请参阅 getCode() 方法文档。

  • codeName:与错误相关的代码名称。要学习;了解更多信息,请参阅 getCodeName() 方法文档。

  • message:与错误相关的消息。要学习;了解更多信息,请参阅 getMessage() 方法文档。

  • details:与 JSON 格式的错误相关的详细信息。 要了解更多信息,请参阅以下方法文档:

WriteSkippedException

描述:
通知 MongoDB 未尝试在以下场景中写入 SinkRecord

  1. connector向 MongoDB 发送有序批量写入操作

  2. MongoDB 无法处理有序批量写入中的写入操作

  3. MongoDB 不会尝试以有序批量写入的方式执行所有后续写入操作。

要了解如何将 Connector 设置为执行无序批量写入操作,请参阅《Connector 消息处理属性》页面。
消息格式:

此异常不产生任何消息。

要启用向死信队列(DLQ)报告批量写入异常,请使用以下connector配置:

errors.tolerance=all
errors.deadletterqueue.topic.name=<name of topic to use as dead letter queue>
errors.deadletterqueue.context.headers.enable=true

Apache Kafka 2.6 版本增加了对处理错误记录的支持。 Kafka Connector会自动将其无法处理的消息发送到死信队列(DLQ)。一旦进入死信队列(DLQ),您可以检查错误记录,更新它们,然后重新提交以进行处理。

以下是启用死信队列(DLQ)主题example.deadletterqueue的示例配置。此配置指定死信队列(DLQ)和日志文件应记录无效消息,并且死信队列(DLQ)消息应包含上下文标头。

mongo.errors.tolerance=all
mongo.errors.log.enable=true
errors.log.include.messages=true
errors.deadletterqueue.topic.name=example.deadletterqueue
errors.deadletterqueue.context.headers.enable=true

要了解有关死信队列(DLQ)的更多信息,请参阅向主题写入错误和错误消息。