TGViewer
Женя Янченко Женя Янченко @jane_yanchenko · 5.51K subscribers
Post #343 5.53K
Новости из мира Кафки: Diskless Topics

Прочитала на Реддите, что приняли KIP-1150: Diskless Topics.

Жень, что это значит?


Сейчас разберемся.
Кафку сделали в LinkedIn и передали в Apache Foundation, где она стала опенсорс. Любой может поднять себе на сервере Кафку и пользоваться ей, покупать лицензию не нужно. Более того, можно не просто пользоваться Кафкой, но и дописать в нее фичу и продавать получившийся продукт.

Или можно продавать managed Kafka. Когда облачный провайдер поднимает Кафку у себя в облаке, сам ее поддерживает, а вы просто пользуетесь ей как сервисом (девопсы не дадут соврать, что не все идеально, но решение рабочее).
Например, managed Kafka есть у Confluent, AWS, Aiven, у Yandex Cloud и MWS Cloud.

KIP (Kafka Improvement Proposal) — это дизайн-документ, где описывается какая-то проблема и предлагаемое архитектурное решение. Сообщество обсуждает KIP, затем контрибьюторы его реализуют.

Diskless топики пока не появились в самой Кафке, а реализованы только в форке Inkless от компании Aiven, который и стал основой для KIP-1150. Разные компании уже делали свои похожие решения, но они были коммерческие. А теперь будут делать опенсорсное решение.

Что такое Diskless Topics? Какую проблему решаем?


Сейчас Кафка хранит сообщения на локальных дисках. Это дает низкую задержку (latency): Кафка работает быстро. Для надежности используется репликация, то есть данные хранятся несколько раз (на лидере, на репликах).

Однако когда мы храним на дисках много данных и еще их копии - это оказывается дорого. Особенно если в топике данные не о важных платежах, а какие-нибудь логи, которые конечно нужны, но и сэкономить на них хотелось бы.

При этом есть S3 Object Storage, хранение в котором намного дешевле.

Идея diskless topics: хранить сообщения не на дисках брокеров, а в S3 хранилище.

В обычном топике:

Продюсер -> Брокер -> Сохраняем на локальный диск -> Реплицируем в другие брокеры


В diskless topics:

Продюсер -> Брокер -> Сохраняем в S3


Сообщения все же будут временно записываться на локальный диск, пока не закончится активный сегмент, потому что сохранять в S3 по одному сообщению будет сильно медленнее. В S3 будет загружаться готовый сегмент.
Так что это скорее disk-for-a-moment topics, но это звучит не так круто, как diskless
😃

В чем минусы?

Latency: у diskless topics задержка может быть до ~ 2 секунд против миллисекунд у обычных топиков.

Меняется ли что-то в работе консьюмеров?


Практически ничего. Diskless topics специально проектируются так, чтобы Kafka API и модель потребления остались прежними. Наш консьюмер может даже не знать, что этот топик diskless.

Партиции, сегменты и оффсеты остаются. Меняется только внутренний путь чтения данных: брокер читает сегменты из S3 хранилища (с использованием кэша).

Что с надежностью?


Как писала выше, в Кафке надежность достигается за счет репликации партиций. В diskless топиках вопрос надежности делегируется S3 Object Storage. S3 сам хранит несколько копий данных, а Kafka хранит метаданные и управляет партициями.

Кафка гарантировала порядок сообщений внутри одной партиции, сохранится ли эта фича в diskless topics?


Да.

В классических топиках порядок обеспечивается благодаря тому, что сообщения пишутся в файлики как в append-only log. Для каждой партиции есть только один лидер, через которого и идут все записи.

В diskless топиках сохраняется идея, что у каждой партиции в конкретный момент времени есть только один writer. Если он упадет, то контроллер выберет для партиции нового writer-а.

Когда это пригодится?


Diskless топики медленные и дешевые,
они подойдут для потоков большого объёма, где допустима более высокая задержка, например:

🟢 логи
🟢 данные для аналитических систем и дата-лейков
🟢 события аудита

Обычные топики быстрые и дорогие: актуальны для real-time сценариев (платежи, бизнес-события).

Интересно, что этот подход compute + object storage уже используется во многих Big Data системах: Spark, Flink и др.

В комментариях оставлю ссылки на статьи по теме.


А еще у меня есть серия постов про Кафка (от основ до share groups) и пост про S3.
  • 🔥 40
  • 👍 23
  • ❤ 16
  • ❤‍🔥 14
More from @jane_yanchenko
  1. Sep 21, 2026🔗 Подборка постов про Кафку Как обещала на стриме, собрала посты про Кафку в удобное огла…
  2. Sep 21, 2026🎞 Готова запись стрима про Кафку: https://youtu.be/2aRKsD-MWDA Большое спасибо всем, кто…
  3. Sep 16, 2026Сегодня стрим по Кафке в 19:00 Планируем не в формате доклада, а в формате вопрос-ответ, ч…
  4. Sep 16, 2026Post #413
  5. Sep 16, 2026Post #412
  6. Sep 16, 2026Post #411
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →