В моем конкретном случае использования мы собираемся ежедневно получать 1000 ГБ данных.Если я сжимаю файлы локально, то получается около 100 ГБ.
Я написал пример приложения для потокового файла размером 100 МБ (который после сжатия преобразуется в 10 МБ).Один производитель, одна тема с одним разделом.
Я использую транзакции и включил сжатие (gzip).Я запустил команду, чтобы узнать общий размер раздела, и он составил около 85 МБ.Как Кафка, может быть, добавить некоторые данные;чтобы гарантировать семантику ровно один раз.Я создаю огромную партию сообщений и фиксирую их в транзакциях.Каждое сообщение сжато.
Я также посмотрел на то, что Кафка хранит внутри:
- 0000.index
- 0000.log (это занимало наибольшее количество дискового пространства)
- 0000.timeindex
- 0000.snapshot
- контрольная точка эпохи лидера
У меня есть 2 вопроса:
Почему тема Kafka использует так много места на диске даже после сжатия?
Что я могу сделать, чтобы уменьшить место на диске моего раздела?К вашему сведению, сжатие журнала не будет эффективным в моем случае, так как каждое сообщение будет иметь уникальный ключ.