Kafka as an event storeを使用すると、ログを決してデータ(v0.10.0.0)を失うことなく設定することは可能ですか?Apache Kafkaはすべてのデータを保持します
私はlog.retention.hours
を見ましたが、compaction keysで遊ぶことを検討していますが、メッセージを削除しないkafkaのオプションがありますか?
また、保存期間に間違いなく高い値を設定することをお勧めしますか?
Kafka as an event storeを使用すると、ログを決してデータ(v0.10.0.0)を失うことなく設定することは可能ですか?Apache Kafkaはすべてのデータを保持します
私はlog.retention.hours
を見ましたが、compaction keysで遊ぶことを検討していますが、メッセージを削除しないkafkaのオプションがありますか?
また、保存期間に間違いなく高い値を設定することをお勧めしますか?
保存期間に間違いなく高い値を使用する方が良い方法はありません。
公正な警告:無限の保持を使用すると、おそらく少しあなたを傷つけるでしょう。
たとえば、デフォルトの動作では、トピックの開始または終了から新しいサスペンションを開始することができます。これは、イベントソーシングの観点からは少なくとも迷惑になります。
また、カフカは、規模(1秒間に数万件のメッセージ)で使用されると、高性能のストレージに大きなメリットをもたらします。永続的な保持ポリシーにより、コストは非常に高くなります。
FYI、Kafkaは、安価なデータストアでデータを簡単に維持するためのツール(Kafka Connectなど)を提供しています。
更新:It’s Okay To Store Data In Apache Kafka
明らかにこれは、データがすべて 時間保持されますが、あなただけの 「永遠」に保持を設定したり、トピックのログ圧縮を有効にした場合、可能です。しかし、私は人々が実際に質問していると思うが、それは これは動作するかどうか、それは まったく狂っているものかどうかです。
短い答えは、これはずっと気違いではなく、人々はいつもこれをやっているということです。 とカフカは実際このタイプの使用のために設計されました。しかし、まず、なぜ あなたはこれをしたいですか?実際にはいくつかのユースケースがあります:
これは確かに情報の記事ですが、私はそれがディスクコストと実際のデータ再生の両方に関する私の懸念事項には触れていないと感じています。その情報は? – C4stor
私は「開始時または終了時のみ」の動作を認識しておらず、これは間違いなく問題になる可能性があります。 "最後の100のメッセージを読む"のようなものを作るための回避策がありますか? – nha
私が知っているわけではありませんが、あなたの最善の策は、いくつかの基準に基づいてメッセージをフィルタリングすることです(私はあなたのデータに時間ベースのフィールドがあると思います)。 – C4stor