TGViewer
ТехнофITнес | Никита Ульшин ТехнофITнес | Никита Ульшин @tech_fit · 262 subscribers
Post #16 373
Надёжный процессинг триллионов сообщений Kafka в день

Крутая статья о том, с какими трудностями столкнулись инженеры Walmart при работе с Kafka на своей нагрузке. Особенно интересны условия: 25K+ консюмеров, специфичные юз-кейсы с SLA 99.99, куча приложений на разных языках программирования.

⭐️ Интересные идеи

➡️ Walmart сильно страдал из-за ребалансировки консюмеров. Любое изменение конфигурации подов в consumer group могло вызвать ребалансировку. Это решение даёт системе высокую устойчивость, но негативно влияет на latency, из-за чего многие системы не могли соответствовать своим SLA на обработку.

➡️ Ещё одной проблемой стала блокировка консюмера (партиции) в случае, если в него попадает сообщение, которое никогда не будет обработано (например, из-за бага). Такое сообщение никогда не пойдёт дальше и в результате забьёт канал, пока инженеры не выкатят фикс.

➡️ На большой нагрузке Kafka начинает стоить адски дорого. Единственный способ масштабирования — добавлять больше партиций, но есть мягкое ограничение в 4000 партиций на брокер (в статье есть ссылка на другую статью, пока не читал).

➡️ Решение они придумали тоже довольно специфичное: внедрили Messaging Proxy Service (MPS), который выступил в роли прослойки между Kafka и реальными потребителями. Его задача — остановить постоянный процесс ребалансировки консюмеров и обеспечить обработку ошибок.

➡️ MPS разделяет чтение из Kafka и отправку сообщений потребителям. Легковесный читатель тащит данные из Kafka и складывает в свою очередь, писатель читает из этой очереди и рассылает сообщения потребителям. Параллельно отдельный поток коммитит оффсеты.

➡️ Писатель использует экспоненциальный retry и после нескольких неудачных попыток отправляет сообщение в специально созданный топик Dead Letter Queue (DLQ).

➡️ Решение реализовано на Kafka Connect, поэтому работает достаточно надёжно и масштабируемо. К тому же оно stateless, поэтому легко масштабируется.

Короче, ребята немножко переизобрели свою Kafka. Но решение сработало :)

Приятного чтения!

#highload@tech_fit
➖➖➖➖➖➖➖➖➖➖➖
// Понравился пост? Ставь 💛
// И обязательно подпишись на канал, чтобы не пропустить новые статьи
Medium Reliably Processing Trillions of Kafka Messages Per Day Authors: Vilas Athavale, Ravinder Matte, Sid Anand, Shrity Verma, Naresh Gopalani, Bhaven Avalani
  • 👍 4
  • 🔥 4
  • ⚡ 2
More from @tech_fit
  1. Oct 13, 2025Почему Uber переехал с Postgres на MySQL Интересная статья о том, какие проблемы в Postgre…
  2. Oct 6, 2025Паттерн Bulkhead Продолжаю читать статьи про паттерны отказоустойчивых приложений. На очер…
  3. Oct 1, 2025Как сервера договариваются друг с другом: алгоритм распределённого консенсуса Raft Распред…
  4. Sep 29, 2025Микросервисы не подходят стартапам Интересная статья, которая в очередной раз напоминает о…
  5. Aug 25, 2025Сколько партиций в Kafka мне нужно? Партиции — это одна из важнейших частей Kafka. С их по…
  6. Aug 18, 2025Роадмап архитектора Как вы знаете, иногда я тут делюсь не обзорчиками, а вполне прикладным…
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 →