Да, это примерно правильно. Обычно мне не нравится определять этот параметр как «максимальный размер», поскольку он не совсем правильный.
Один из способов увидеть это - рассмотреть log.retention.bytes
минимальный объем данных, который должен оставаться после Kafka. удаляет сегменты. Или объем данных, который Kafka гарантирует хранить в любое время (очевидно, только если не достигнут предел времени хранения!)
Активный сегмент не подлежит удалению. Итак, как вы заметили, когда заполняется первый сегмент, Kafka ничего не удаляет, даже если вы достигли 1 ГБ. Вместо этого он свернул новый сегмент (новый активный). Когда этот новый сегмент также достигнет 1 ГБ, у вас будет фактически 2 ГБ данных на диске.
В этот момент новый сегмент прокручивается снова, и у вас есть 2 неактивных сегмента. Только теперь Kafka может удалить сегмент и по-прежнему удовлетворять требованиям log.retention.bytes
, так как на диске будет 1 ГБ данных + активный сегмент.