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

Error Handling

Nesta página

  • Visão geral
  • Manipular erros
  • Parar para todos os erros
  • Tolerar todos os erros
  • Tolerar erros de dados
  • Gravar erros e mensagens errôneas em um tópico
  • Registrar erros
  • Lidar com erros no nível do conector

Neste guia, você pode aprender como lidar com erros em seu MongoDB Kafka connector. A lista a seguir mostra alguns cenários comuns que fazem com que o connector do coletor tenha um erro:

  • Você escreve em um tópico usando a serialização Avro e tenta decodificar suas mensagens desse tópico usando a desserialização Protobuf

  • Você usa um manipulador de captura de dados de alteração em uma mensagem que não contém documentos de eventos de alteração

  • Você aplica uma transformação de mensagem única inválida a documentos recebidos

Quando o seu connector do coletor encontra um erro, ele executa duas ação:

  • Lida com o erro

  • Registra o erro

Quando o connector encontra um erro, ele precisa lidar com isso de alguma forma. O connector do coletor pode fazer o seguinte em resposta a um erro:

Por padrão, o seu connector do coletor encerra e para de processar mensagens quando encontra um erro. Essa é uma boa opção para você se algum erro no connector da pia indicar um problema grave.

Quando o seu connector do coletor falha, você deve realizar uma das seguintes ação e reiniciar o connector para retomar o processamento das mensagens:

  • Permita que o conector do coletor tolere temporariamente erros

  • Atualize a configuração do conector do coletor para permitir que ele processe a mensagem

  • Remover a mensagem errônea do seu tópico

Você pode fazer com que o connector do coletor pare quando encontrar um erro não especificando nenhum valor para a opção errors.tolerance ou adicionando o seguinte à configuração do connector:

errors.tolerance=none

Você pode configurar o seu connector do coletor para tolerar todos os erros e nunca parar de processar mensagens. Essa é uma boa opção para colocar o connector do coletor em funcionamento rapidamente, mas você corre o risco de perder problemas no connector, pois não recebe nenhum feedback se algo der errado.

Para fazer com que o connector do coletor tolere todos os erros, especifique a seguinte opção:

errors.tolerance=all

Aviso

Gravações em massa ordenadas podem resultar em mensagens ignoradas

Se você definir o conector para tolerar erros e usar gravações em massa ordenadas, poderá perder dados. Se você definir o conector para tolerar erros e usar gravações em massa não ordenadas, perderá menos dados. Para saber mais sobre operações de escrita em massa, consulte a página Estratégias do modelo de escrita.

Você pode configurar seu connector de pia para tolerar apenas erros de dados e interromper o processamento de todos os outros. Com essa configuração, o connector envia erros de dados para a dead letter queue (DLQ), se houver alguma configurada.

Configure seu connector de pia para tolerar somente erros de dados especificando a seguinte opção:

errors.tolerance=data

Você pode configurar o seu connector para gravar erros e mensagens errôneas em um tópico, chamado de fila de mensagens não entregues (DLQ), para você inspecionar ou processar ainda mais. Uma fila de mensagens não entregues (DLQ) é um local em sistemas de enfileiramento de mensagens, como o Apache Kafka, onde o sistema roteia mensagens errôneas em vez de travar ou ignorar o erro. As fila de mensagens não entregues (DLQ) combinam o feedback de parar o programa com a durabilidade de tolerar todos os erros e são um bom ponto de partida para lidar com erros para a maioria dos sistemas.

Você pode fazer com que o connector encaminhe todas as mensagens errôneas para uma fila de mensagens não entregues (DLQ) especificando as seguintes opções:

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

Se você quiser incluir o motivo específico do erro, bem como a mensagem errônea, use a seguinte opção:

errors.deadletterqueue.context.headers.enable=true

Para saber mais sobre filas de dead letter, consulte o guia do Confluent sobre dead letter queues.

Para ver outro exemplo de configuração de dead letter queue (DLQ), consulte Exemplo de configuração de dead letter queue (DLQ).

Para saber mais sobre as exceções que o connector define e grava como cabeçalhos de contexto na fila de mensagens não entregues (DLQ), consulte Exceções de gravação em massa.

Você pode registrar erros tolerados e não tolerados em um arquivo de log. Clique nas abas para ver como registrar erros:

A seguinte opção padrão faz com que o Kafka Connect grave somente erros não tolerados no registro do aplicativo:

errors.log.enable=false

A opção abaixo faz com que o Kafka Connect grave erros tolerados e não tolerados no registro do aplicação :

errors.log.enable=true

Se você quiser registrar metadados sobre sua mensagem, como o tópico e o deslocamento da mensagem, use a seguinte opção:

errors.log.include.messages=true

Para obter mais informações, consulte o guia do Confluent sobre registro com o Kafka Connect.

O connector fornece opções que permitem a você configurar o tratamento de erros no nível do connector. As opções são as seguintes:

Opção do Kafka Connect
Opção do Kafka Connector do MongoDB
errors.tolerance
mongo.errors.tolerance
errors.log.enable
mongo.errors.log.enable

Use essas opções se quiser que seu connector responda de forma diferente a erros relacionados ao MongoDB e a erros relacionados à estrutura do Kafka Connect.

Para obter mais informações, consulte os seguintes recursos:

Voltar

Pós-processadores