Menu Docs
Página inicial do Docs
/
MongoDB Kafka Connector
/ /

Propriedades de tratamento de erros do conector

Nesta página

  • Visão geral
  • Configurações
  • Exceções de gravação em massa
  • Exemplo de configuração de fila de mensagens não entregues (DLQ)

Use as seguintes definições de configuração para especificar como o conector do coletor do MongoDB Kafka lida com erros e para configurar a fila de letras mortas.

Para obter uma lista de definições de configuração do conector de coletor organizadas por categoria, consulte o guia sobre Propriedades de configuração do conector de coletor.

Nome
Descrição
mongo.errors.tolerance
Type: string

Description:
Whether to continue processing messages if the connector encounters an error. Allows the connector to override the errors.tolerance Kafka cluster setting.
When set to none, the connector reports any error and blocks further processing of the rest of the messages.
When set to all, the connector ignores any problematic messages.
When set to data, the connector tolerates only data errors and fails on all other errors.
To learn more about error handling strategies, see the Handle Errors page.

Observação

Esta propriedade substitui o errors.tolerance propriedade do Connect Framework.

Default: Inherits the value from the errors.tolerance setting.
Accepted Values: "none" or "all"
mongo.errors.log.enable
Type: boolean

Description:
Whether the connector should write details of errors including failed operations to the log file. The connector classifies errors as "tolerated" or "not tolerated" using the errors.tolerance or mongo.errors.tolerance settings.
When set to true, the connector logs both "tolerated" and "not tolerated" errors.
When set to false, the connector logs "not tolerated" errors.

Observação

Esta propriedade substitui o errors.log.enable propriedade do Connect Framework.

Default: false
Accepted Values: true or false
errors.log.include.messages
Type: boolean

Description:
Whether the connector should include the invalid message when logging an error. An invalid message includes data such as record keys, values, and headers.

Default: false
Accepted Values: true or false
errors.deadletterqueue.topic.name
Type: string

Description:
Name of topic to use as the dead letter queue. If blank, the connector does not send any invalid messages to the dead letter queue.
For more information about the dead letter queue, see the Dead Letter Queue Configuration Example.

Default: ""
Accepted Values: A valid Kafka topic name
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 the Bulk Write Exceptions section.

Default: false
Accepted Values: true or false
errors.deadletterqueue.topic.replication.factor
Type: integer

Description:
The number of nodes on which to replicate the dead letter queue topic. If you are running a single-node Kafka cluster, you must set this to 1.
For more information about the dead letter queue, see the Dead Letter Queue Configuration Example.

Default: 3
Accepted Values: A valid number of nodes

O connector pode relatar as seguintes exceções à sua fila de mensagens não entregues (DLQ) como cabeçalhos de contexto ao executar gravações em massa:

Nome
Descrição
WriteException
Description:
Contains details of a BulkWriteError your connector encountered.

Message Format:

Esta classe gera o erro no seguinte formato:

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

Os campos na mensagem anterior contêm as seguintes informações:

  • v: a versão do formato de mensagem WriteException . Este campo ajuda a analisar as mensagens produzidas por esta exceção. Para a versão 1.13 do connector, a versão do formato da mensagem é 1.

  • code: o código associado ao erro. Para saber mais, consulte o getCode() documentação do método.

  • message: a mensagem associada ao erro. Para saber mais, consulte a getMessage() documentação do método.

  • details: Os detalhes associados ao erro no formato JSON. Para saber mais, consulte a seguinte documentação de método:

WriteConcernException
Description:
Contains details of a WriteConcernError your connector encountered.

Message Format:

Esta classe gera o erro no seguinte formato:

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

Os campos na mensagem anterior contêm as seguintes informações:

  • v: a versão do formato de mensagem WriteConcernException . Este campo ajuda a analisar as mensagens produzidas por esta exceção. Para a versão 1.13 do connector, a versão do formato da mensagem é 1.

  • code: o código associado ao erro. Para saber mais, consulte o getCode() documentação do método.

  • codeName: O nome do código associado ao erro. Para saber mais, consulte o getCodeName() documentação do método.

  • message: a mensagem associada ao erro. Para saber mais, consulte a getMessage() documentação do método.

  • details: Os detalhes associados ao erro no formato JSON. Para saber mais, consulte a seguinte documentação de método:

WriteSkippedException
Description:
Informs that MongoDB did not attempt the write of a SinkRecord as part of the following scenario:
  1. O connector envia uma operação de gravação ordenada em massa para o MongoDB

  2. MongoDB falha ao processar uma operação de gravação na gravação em massa ordenada

  3. O MongoDB não tenta realizar todas as operações de gravação subsequentes na gravação em massa ordenada

To learn how to set the connector to perform unordered bulk write operations, see the Connector Message Processing Properties page.
Message Format:

Esta exceção não produz nenhuma mensagem.

Para habilitar o relatório de exceções de gravação em massa para a fila de mensagens não entregues (DLQ), use a seguinte configuração do connector:

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

A versão 2.6 do Apache Kafka adicionou suporte para lidar com registros errôneos. O conector Kafka envia automaticamente mensagens que não pode processar para a fila de letras mortas . Uma vez na fila de letras mortas, você pode inspecionar os registros erráticos, atualizá-los e reenviá-los para processamento.

Veja a seguir um exemplo de configuração para ativar o tópico da fila de mensagens não entregues (DLQ) example.deadletterqueue. Essa configuração especifica que a dead letter queue e o arquivo de log devem registrar mensagens inválidas e que as mensagens da dead letter queue devem incluir cabeçalhos de contexto.

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

Para saber mais sobre fila de mensagens não entregues (DLQ), consulte Escrever erros e mensagens errôneas em um tópico.

Voltar

Processamento de mensagens do conector