对于 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会记录“允许”和“不允许”的错误。设立为 时,Connector会记录“不允许”错误。此属性会覆盖错误。日志。errors.tolerance mongo.errors.tolerance

true
false


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

false
接受值:truefalse

errors.log.include.messages

类型:布尔值


描述:Connector在记录错误时是否应包含无效消息。无效消息包括记录键、值和标头等数据。默认值:

false
接受值:truefalse

errors.deadletterqueue.topic.name

类型: string

说明:
用作死信队列(DLQ)的主题名称。如果为空,连接器将不会将任何无效消息发送到死信队列(DLQ)。

要了解有关死信队列(DLQ)的更多信息,请参阅死信队列(DLQ)配置示例

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

errors.deadletterqueue.context.headers.enable

类型:布尔值

说明:
连接器在将消息写入死信队列(DLQ)时是否包含上下文标头。

要了解有关死信队列(DLQ)的更多信息,请参阅死信队列(DLQ)配置示例

要了解连接器通过上下文标头定义和报告的异常,请参阅批量写入异常

默认: false
可接受值truefalse

errors.deadletterqueue.topic.replication.factor

类型:整数

说明:
复制死信队列(DLQ)主题的节点数。如果您运行单节点 Kafka 集群,则必须将其设置为 1

要了解有关死信队列(DLQ)的更多信息,请参阅死信队列(DLQ)配置示例

默认: 3
可接受值:有效节点数

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

名称
说明

WriteException

描述:
包含Connector遇到的 BulkWriteError

的详细信息。消息格式:

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

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

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

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

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

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

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

WriteConcernException

描述:
包含Connector遇到的 WriteConcernError

的详细信息。消息格式:

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

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

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

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

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

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

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

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

WriteSkippedException

描述:
通知MongoDB在以下情况下未尝试写入SinkRecord

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

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

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


要学习;了解如何将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)的更多信息,请参阅向主题写入错误和错误消息。