65.12. Kafka トランザクション


プロデューサーとの Kafka トランザクションを有効にするには、additional-propertiestransactional.idenable.idempotenceretries を追加する必要があります。

from("direct:transaction")
.to("kafka:my_topic?additional-properties[transactional.id]=1234&additional-properties[enable.idempotence]=true&additional-properties[retries]=5");

エクスチェンジルーティングの終了時に、Kafka プロデューサーはトランザクションをコミットするか、例外がスローされた場合、またはエクスチェンジが RollbackOnly の場合はトランザクションを中止します。Kafka はマルチスレッドでのトランザクションをサポートしていないため、トランザクション要求を行うために同じ transaction.id を持つ別のプロデューサーが存在する場合、ProducerFencedException がスローされます。

これは、transacted() を使用して JTA camel-jta と連携して動作します。また、XA をサポートするリソース (SQL または JMS) が関係する場合は、それらが連携して動作し、エクスチェンジルーティングの最後に両方がコミットまたはロールバックします。JTA トランザクションマネージャーがコミットに失敗したが (2PC 処理中)、その前に kafka トランザクションがコミットされており、kafka トランザクションは JTA/XA 仕様をサポートしていないため変更をロールバックできないという場合もあります。データの整合性に関しては依然としてリスクが存在します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る