Docs Menu
Docs Home
/
MongoDB Kafka Connector
/ /

커넥터 오류 처리 속성

이 페이지의 내용

  • 개요
  • 설정
  • 대량 쓰기 예외
  • 데드 레터 큐 구성 예시

다음 구성 설정을 사용하여 MongoDB Kafka connector가 오류를 처리하는 방법을 지정하고 데드 레터 큐를 구성합니다.

카테고리별로 정리된 싱크 connector 구성 설정 목록은 싱크 Connector 구성 속성가이드 를 참조하세요.

이름
설명
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.

This property overrides the errors.tolerance
property of the 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.

This property overrides the errors.log.enable
property of the 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.

To learn more 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 Bulk Write Exceptions.

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.

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

Default: 3
Accepted Values: A valid number of nodes

connector는 대량 쓰기를 수행할 때 데드 레터 큐에 다음과 같은 예외를 컨텍스트 헤더로 보고할 수 있습니다.

이름
설명
WriteException
Description:
Contains details of a BulkWriteError your connector encountered.

Message Format:

이 클래스는 다음 형식으로 오류를 출력합니다.

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

이전 메시지의 필드에는 다음 정보가 포함되어 있습니다.

  • v: WriteException 메시지 형식의 버전입니다. 이 필드는 이 예외로 인해 생성된 메시지를 구문 분석하는 데 도움이 됩니다. connector 버전 1.14 의 경우 메시지 형식의 버전은 1입니다.

  • code: 오류와 관련된 코드입니다. 자세한 내용은 getCode() 를 참조하세요. 메서드 문서.

  • message: 오류와 관련된 메시지입니다. 자세한 내용은 getMessage() 메서드 문서.

  • details: 오류와 관련된 세부 정보(JSON 형식)입니다. 자세한 내용은 다음 메서드 문서를 참조하세요.

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

Message Format:

이 클래스는 다음 형식으로 오류를 출력합니다.

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

이전 메시지의 필드에는 다음 정보가 포함되어 있습니다.

  • v: WriteConcernException 메시지 형식의 버전입니다. 이 필드는 이 예외로 인해 생성된 메시지를 구문 분석하는 데 도움이 됩니다. connector 버전 1.14 의 경우 메시지 형식의 버전은 1입니다.

  • code: 오류와 관련된 코드입니다. 자세한 내용은 getCode() 를 참조하세요. 메서드 문서.

  • codeName: 오류와 관련된 코드 이름입니다. 자세한 내용은 getCodeName() 메서드 문서.

  • message: 오류와 관련된 메시지입니다. 자세한 내용은 getMessage() 메서드 문서.

  • details: 오류와 관련된 세부 정보(JSON 형식)입니다. 자세한 내용은 다음 메서드 문서를 참조하세요.

WriteSkippedException
Description:
Informs that MongoDB did not attempt the write of a SinkRecord as part of the following scenario:
  1. connector는 순서가 지정된 대량 쓰기 작업을 MongoDB로 보냅니다.

  2. MongoDB가 순서가 지정된 대량 쓰기에서 쓰기 작업을 처리하지 못합니다.

  3. MongoDB는 순서가 지정된 대량 쓰기에서 모든 후속 쓰기 작업을 수행하려고 시도하지 않습니다.

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

이 예외는 메시지를 생성하지 않습니다.

데드 레터 큐에 대한 대량 쓰기 예외 보고를 활성화하려면 다음 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는 처리할 수 없는 메시지를 데드 레터 큐로 자동으로 보냅니다. 데드 레터 큐에 추가되면 잘못된 기록을 검사하고 업데이트하고 처리를 위해 다시 제출할 수 있습니다.

다음은 데드 레터 큐 주제 example.deadletterqueue 를 활성화하기 위한 구성 예시입니다. 이 구성은 데드 레터 큐 및 로그 파일에 유효하지 않은 메시지를 기록하고 데드 레터 큐 메시지에 컨텍스트 헤더를 포함하도록 지정합니다.

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

데드 레터 큐에 대해 자세히 알아보려면 주제에 오류 및 잘못된 메시지 쓰기를 참조하세요.

돌아가기

커넥터 메시지 처리