5.2. メッセージの保持
メッセージの保持ポリシーは、Kafka ブローカーにメッセージを保存する期間を定義します。これは、時間あるいはパーティションサイズ、またはその両方に基づいて定義できます。
たとえば、以下のようにメッセージを保存するように定義できます。
- 7 日間
- パーティションに 1 GB のメッセージが保存されるまで。制限に達すると、最も古いメッセージが削除されます。
- 7 日間、または 1 GB の制限に達するまで。いずれか最初に達した方の制限が使用されます。
Kafka ブローカーはメッセージをログセグメントに保存します。保持ポリシーを超えたメッセージは、新しいログセグメントが作成された場合にのみ削除されます。新しいログセグメントは、古いログセグメントが設定されたログセグメントサイズを超えると作成されます。さらに、ユーザーは定期的に新しいセグメントの作成を要求できます。
また、Kafka ブローカーはコンパクト化ポリシーをサポートします。
圧縮されたポリシーのあるトピックでは、ブローカーは常に各キーの最後のメッセージのみを保持します。同じキーを持つ古いメッセージは、パーティションから削除されます。圧縮は定期的に実行されるため、同じキーを持つ新しいメッセージがパーティションに送信されてもすぐには実行されません。代わりに、古いメッセージが削除されるまで多少時間がかかる場合があります。
メッセージの保持設定オプションの詳細は、「トピックの設定」を参照してください。