2.5.2. オフセットの手動によるコミット


Kafka では、各トピックは パーティション に分割されます。各パーティションは、順序付けされたイミュータブルなメッセージのシーケンスです。アプリケーションまたはサービスがメッセージをトピックに送信すると、Kafka はメッセージを選択したパーティションに追加します。Kafka は、オフセット と呼ばれる連続した ID 番号を各メッセージに割り当てて、パーティション内の各メッセージを一意に識別します。

デフォルトでは、Kafka コンシューマー (データシンクなど) が Kafka からメッセージを読み取ると、Kafka は現在のオフセット (読み取り元のパーティションの) を定期的にコミットします。オフセットコミット は、Kafka クラスターが同じパーティションにコミットされたメッセージを再送信しないように、メッセージの処理が成功したことを Kafka に通知します。

Kafka がオフセットをコミットするタイミングをより正確に制御するには (例: アプリケーションがメッセージを非同期的に処理し、問題が発生した場合にオフセットをコミットしないようにする場合)、Kafka の 自動コミット動作を無効にできます。この場合、アプリケーションがオフセットをコミットする必要があります。

kamelets を使用して Kafka に接続する場合、オフセットを手動でコミットするよう指定できます。

前提条件

  • Kafka コンシューマーの enable.auto.commit プロパティーを false に設定して、Kafka の自動コミット動作を無効にしている。
  • Connecting a data source to a Kafka topic in a kamelet binding」で説明されているように、シンクが kafka-sink kamelet である kamelet バインディングを作成している。

手順

Adding an operation to a kamelet binding」の説明どおりに、kafka-sink kamelet が含まれる kamelet バインディングの中間ステップとして kafka-manual-commit-action kamelet を追加します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.