Docs Menu
Docs Home
/
MongoDB Kafka Connector
/ /

Error Handling

項目一覧

  • Overview
  • エラーの処理
  • すべてのエラーで停止
  • すべてのエラーを許容する
  • データエラーを許容する
  • トピックへのエラーとメッセージの書き込み
  • ログ エラー
  • Connectorレベルでのエラーの処理

このガイドでは、MongoDB Kafka Sink Connector でエラーを処理する方法を学習できます。 次のリストは、Sink Connector でエラーが発生する一般的なシナリオを示しています。

  • Avro 直列化を使用してトピックに書き込み、Protobuf 逆直列化を使用してそのトピックからメッセージをデコードする

  • 変更イベント ドキュメントを含まないメッセージに対して 変更データ キャプチャ ハンドラーを使用する

  • 受信ドキュメントに無効な単一メッセージ変換を適用した場合

Sink Connector でエラーが発生すると、次の 2 つのアクションが実行されます。

  • エラーの処理

  • エラーをログに記録

コネクタでエラーが発生した場合、何らかの方法でエラーを処理する必要があります。 Sink Connector は、エラーに応答して次の操作を実行できます。

デフォルトでは、Sink Connector はエラーに遭遇すると終了し、メッセージの処理を停止します。 Sink connector のエラーが重大な問題を示している場合は、これが適切なオプションです。

Sink Connector がクラッシュした場合は、メッセージの処理を再開するために以下のいずれかのアクションを実行し Connector を再起動する必要があります。

  • Sink Connector が一時的にエラーを許容できるようにする

  • Sink Connector の設定を更新して、メッセージを処理できるようにします

  • トピックからエラー メッセージを削除する

エラーが発生したときに Sink Connector を停止させるには、 errors.toleranceオプションの値を指定しないか、以下を Connector 構成に追加します。

errors.tolerance=none

すべてのエラーを許容し、メッセージの処理を停止しないように Sink Connector を構成できます。 これは Sink Connector を起動してすばやく実行するのに適したオプションですが、問題が発生した場合にフィードバックが受け取られないため、コネクターに問題が発生するリスクがあります。

次のオプションを指定することで、Sink Connector がすべてのエラーを許容できるようになります。

errors.tolerance=all

警告

順序付き一括書込みでメッセージがスキップされる可能性あり

コネクタを エラーを許容するように設定し、順序付き一括書き込みを使用すると、データが失われる可能性があります。 エラーを許容するようにコネクターを設定し、順序なしの一括書込みを使用すると、データの損失は少なくなります。 一括書き込み操作の詳細については、 の「書込みモデル戦略」ページを参照してください。

データ エラーのみを許容し、他のすべてのエラーの処理を停止するように Sink Connector を構成できます。 この設定では、コネクタはデッド レター キューにデータ エラーを送信します(構成されている場合)。

次のオプションを指定して、データエラーのみを許容するように Sink Connector を設定します。

errors.tolerance=data

Sink Connector を構成して、エラーを書込み (write) とメッセージをトピック(デッド レター キューと呼ばれる)のドキュメントに送信し、さらに検査や処理が可能になります。 デッド レター キューは、Apache Kafka などのメッセージ キュー システム内のロケーションであり、エラーをクラッシュしたり無視したりする代わりに、システムがエラー メッセージをルーティングします。 デッドレターキューは、プログラムを停止した際のフィードバックとすべてのエラーを許容する耐久性を組み合わせたもので、ほとんどの配置におけるエラー処理の開始点として適しています。

次のオプションを指定することで、Sink Connector がすべてのエラーメッセージをデッドレターキューにルーティングすることができます。

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

エラーの具体的な理由とエラー メッセージを含める場合は、次のオプションを使用します。

errors.deadletterqueue.context.headers.enable=true

デッド レター キューについて詳しくは、Confluent のガイドを「 デッド 文字のキュー に関するもの 」を参照してください 。

別のデッド レター キューの構成例については、「 デッド 文字キューの構成例 」を参照してください

コネクターが定義する例外、およびコンテキスト ヘッダーとしてデッド レター キューに書込む例外の詳細については、「一括書込みの例外 」を参照してください。

許容されたエラーと許容されないエラーをログファイルに記録できます。 エラーをログに記録する方法を確認するには、タブをクリックします。

次のデフォルト オプションを使用すると、 Kafka Connect はアプリケーション ログに未タームのエラーのみを書込みます。

errors.log.enable=false

次のオプションを使用すると、 Kafka Connect は許容されているエラーと許容されていないエラーの両方をアプリケーション ログに書込みます。

errors.log.enable=true

メッセージのトピックやオフセットなど、メッセージに関するメタデータをログに記録する場合は、次の オプションを使用します。

errors.log.include.messages=true

詳細については 、 Kafka Connect を使用したログ記録 に関する Confluent のガイドを参照してください。

Sink Connector には、コネクターレベルでエラー処理を構成できるオプションが用意されています。 オプションは次のとおりです。

Kafka 接続オプション
MongoDB Kafka Connectorオプション
errors.tolerance
mongo.errors.tolerance
errors.log.enable
mongo.errors.log.enable

Kafka Connect フレームワークに関連するエラーではなく、MongoDB に関連するエラーに対してコネクターが異なる応答をする場合は、これらのオプションを使用します。

詳細については、次のリソースを参照してください。

戻る

ポストプロセッサ