カフカ(0.11.0.0)の最後のバージョンから2017年6月28日にリリースされた、のをサポートするためにカフカチームが新機能を提供しました。 最新バージョンをダウンロードした後、Producer configsに記載されているように、プロデューサ(kafka-console-producer.sh
スクリプトで実行)を設定しようとしました:enable.idempotence=true
とtransactional.id=0A0A
と設定しました。カフカ - "一度だけの配達"の意味で
問題は、私がプロデューサーを起動したとき、私はConfigException
はacks
は(私はコンソールスクリプトに引数として渡すproducer.propertiesファイルでそれを設定しても)all
または-1
に設定されなければならないことを言ってもらうことです。
コンソールスクリプトを使用して冪等が設定できない根本原因になりますか?さらに、提供されたコンソールスクリプトを通じてメッセージを生成するアトミックトランザクションを行う方法はありますか?
詳細:書き込むことができる
- 冪等プロデューサー:sythesisで
は、採用されたソリューションは、2つの主要な概念に基づいています特定の私プロダクション側でトランザクションIDを導入することにより、1回だけssageが設定されます 保証アトミック性複数の場合は単一のトピックのパーティションになります。
- コンシューマ側では、
isolation.level=read_committed
プロパティを通じて、トランザクションがコミットされた後にのみメッセージを読み取ることができるようになりました。
コンソールプロデューサのデフォルトはacks = 1です。これを正しく「すべて」または-1に変更してください。 –