2016-10-14 2 views
3

Ich bin neu bei Apache Kafka. Ich habe über die Bereinigungsrichtlinie für die Bereinigung gelesen. Ich bin besonders daran interessiert, weil ich diese Richtlinie für Themen verwenden möchte, die zum Synchronisieren verschiedener Datenspeicher verwendet werden, um eine mögliche Konsistenz zu erreichen.Wie lange werden verdichtete Protokolle in Kafka aufbewahrt?

Ich sehe, dass es eine delete.retention.ms Option für mich zu verwenden gibt. Dies gilt jedoch nur für die "Delete" Tombstones/Payloads. Ich verstehe, dass diese Option die Zeit begrenzt, nach der ich einen Kunden erneut ausführen kann, nachdem er Datensätze von offset=0 nicht angesehen hat. Jedoch lösche ich nie etwas in meinem System. Mit anderen Worten, ich werde niemals Tombstones/Payloads "löschen".

Da ich nie löschen Tombstones haben werde, möchte ich wissen, wie lange Kafka das verdichtete Protokoll behalten wird?

HINWEIS: Ich bin auf this Frage gestoßen, die mich zu this Problem führen. Dies beantwortet nicht, was ich wissen muss, oder dies ist nicht etwas, das ich verwenden kann, um eine Grenze für die Länge des verdichteten Protokolls zu setzen. Korrigiere mich, wenn ich falsch liege.

Antwort

4

Wenn Sie Verdichtung verwenden log (log Retention nicht) Kafka wird die neueste Eintrag halten für jede Taste immer (bis Sie den gesamten Schlüssel mit einer expliziten Tombstone Nachricht <key:null> löschen).

+0

Als eine Follow-up-Frage, was sind einige gute Möglichkeiten, um die Größe dieser Daten zu verwalten? –

+0

Die Größe Ihres Themas hängt von der Verwendung von Log - Komprimierung ab und hängt von zwei Faktoren ab: (1) die Anzahl der unterschiedlichen Schlüssel (dies ist im Grunde eine Untergrenze der Log - Größe) und (2) wie eifrig Log - Bereinigung ausgelöst wird Kombination mit Ihnen Eingabe/Update schreiben. Das Protokollbereinigungsintervall kann konfiguriert werden. –

Verwandte Themen