私はApache-Samzaのプロジェクトを持っており、重複したデータに問題があります。task.commit.msを1msごとに設定できますか?
これは私のチェックポイントの設定です:私たちは、これを読むことができますマニュアルの
task.checkpoint.factory=org.apache.samza.checkpoint.kafka.KafkaCheckpointManagerFactory
task.checkpoint.system=kafka
task.checkpoint.replication.factor=2
task.commit.ms=20000
:task.checkpoint.factoryが設定されている
場合、このプロパティは、チェックポイントが書き込まれる頻度を決定します。値は、チェックポイント間の時間(ミリ秒単位)です。チェックポイントの頻度は、障害回復に影響します。コンテナが予期せず(クラッシュやマシンの障害などにより)異常終了した場合は、最後のチェックポイントで処理を再開します。失敗したコンテナの最後のチェックポイント以降に処理されたメッセージはすべて処理されます。チェックポインティングを頻繁に行うと、2回処理できるメッセージの数が減るだけでなく、より多くのリソースが使用されます。
task.commit.ms=20000
を250msまたは1msに変更できます。それは良いまたは非常に悪いですか?私は非常に良いクラスターを持っています。
なぜこの変更が必要なのですか?このSamza(ワーカー)が毎週1-3回クラッシュするためです。そして今、一時的な解決策は毎回コミットされます。
ドキュメントの参照:
なぜプログラムは毎週1~3回クラッシュするのですか?そのコンピュータの周りに鉛を入れてください –
私は問題を知っていますが、それは重要ではありません。 – MaximeF
https://xkcd.com/1495/密接に関連しています –