2.4.5. Kafka Connect プロセスクラッシュ
Kafka Connector プロセスが予期せず停止した場合、最後に処理されたオフセットを記録せずに、実行中のコネクタータスクは明らかに終了します。Kafka Connect が分散モードで実行されている場合は、他のプロセスでこれらのコネクタータスクを再起動します。ただし、PostgreSQL コネクターは以前のプロセスで 記録され た最後のオフセットから再開します。つまり、新しい置換タスクにより、クラッシュの直前に処理された同じ変更イベントが生成される可能性があります。重複イベントの数は、オフセットのフラッシュ期間とクラッシュの直前のデータ変更の量によって異なります。
障害からの復旧中に一部のイベントが重複された可能性があるため、コンシューマーは常に一部のイベントが重複している可能性があることを想定する必要があります。Debezium の変更はべき等であるため、一連のイベントは常に同じ状態になります。
Debezium の各変更イベントメッセージには、イベントの送信元に関するソース固有の情報が含まれます。これには、PostgreSQL サーバーのイベントの時間、サーバートランザクションの ID、トランザクションの変更が書き込まれたログ先行書き込みの位置などが含まれます。コンシューマーは、この情報(特に LSN の位置)を追跡し、それらが特定のイベントをすでに認識しているかどうかを確認できます。