Темы Kafka могут быть настроены как со временем хранения, так и с сжатием журнала.При сжатии журнала самая последняя запись для каждого ключа никогда не будет удалена, в то время как более старая запись с тем же ключом будет собираться мусором через регулярные промежутки времени.См. https://kafka.apache.org/documentation/#compaction
Когда Kafka Streams создает KTable
или хранилище состояний и создает раздел журнала изменений для обеспечения отказоустойчивости, он создает этот раздел журнала изменений с включенными сжатием журналов.
Примечание: если вы читаете тему непосредственно как KTable
или GlobalKTable
(т. Е. builder.table(...)
), дополнительная тема журнала изменений не будет создана, но для этой цели будет использована исходная тема.Таким образом, исходный раздел должен быть настроен на сжатие журнала (а не на время хранения).
Вы можете настроить требуемый коэффициент репликации с помощью параметра StreamConfig
repliaction.factor
.Вы также можете вручную изменить коэффициент репликации в любое время, например, с помощью команды bin/kafka-topics.sh
.