Блог Слёрм

Kafka: кейс спикера

Ситуация:

  • Аутсорс-подрядчик разработал consumer, который читал данные из Kafka. Но сделал это своеобразно: чтение шло в один поток из одной партиции.

  • Consumer не успевал обрабатывать данные — как следствие, возникали задержки.

  • Когда я спросил, почему consumer не читает данные параллельно (например, в несколько потоков или через разные сonsumer-группы), подрядчик развёл руками: «Но ведь данные из Kafka начнут исчезать, если мы будем читать параллельно!»

Это утверждение противоречит основам работы Kafka! Данные в Kafka не исчезают, даже если их читает несколько сonsumer-групп или потоков.

❓ В какой момент всё пошло не так?

➡️ С самого начала: подрядчик не понимал базовых принципов работы Kafka, результат — компания потеряла время и деньги на исправление неправильного подхода к вычитке данных.

Прежде, чем работать с Kafka, важно изучить основы, понять, как работают партиции, consumer-группы и потоки, как Kafka хранит данные и обеспечивает их надёжность.

Не нужно изобретать велосипед там, где он давным-давно изобретён. Нужно брать, изучать и делать — тогда и баги будут случаться реже, и ресурсов на них тратить нужно будет меньше.
Apache Kafka