Глубокое погружение в архитектуру Kafka: от простых сценариев до геокластера

Архитектура

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Успешный, высоконагруженный проект, охватывающий всю страну. Без какого инструмента в нем не обойтись? Подсказка: австрийский писатель ХХ века. Конечно: Kafka! Андрей Комягин расскажет про фичи, позволившие добиться результата, копнет внутрь, приведет бенчмарки и покажет, как строить geo-кластер.

Целевая аудитория

Архитекторы, разработчики больших распределенных систем.

Тезисы

Про Apache Kafka не слышал только ленивый. Apache Kafka — это высокопроизводительная потоковая платформа, предназначенная для передачи и обработки больших объемов данных с минимальной задержкой. В каких только системах Kafka сейчас не используется!

Вы уже используете Kafka в своем проекте, но сталкиваетесь с неожиданными падениями производительности при росте нагрузки, непонятными задержками при отправке сообщений, испытываете сложности с масштабированием решения за пределы одного ЦОД или вас терзают сомнения в правильности выбранной конфигурации? На этой ретроспективной сессии — от самых первых шагов и базовых сценариев использования Kafka до построения большой геораспределенной системы — вы получите практические ответы, основанные на боевом опыте построения высоконагруженных систем.

Начнем с основ, но копнем глубже, выйдя за рамки общеизвестной информации. Так что же внутри черного ящика? Мы погрузимся в анатомию Kafka, сравним производительность операций ввода/вывода для Sequential IO vs Random IO, подробно рассмотрим файловую структура хранилища, а также изучим, где и как технология Zero Copy применяется в Kafka для достижения пределов быстродействия.

Погрузимся в тему тюнинга Kafka для экстремальных нагрузок. Поговорим про пакетную обработку, pipelining, компрессию данных (compression.type).

Далее оценим влияние типа сериализации на производительность передачи данных. На основе результатов бенчмаркинга «json vs protobuf», полученных с реального прод-кластера, оценим влияние параметров batch.size, linger.ms и compression.type на RPS.

В самом конце проведем обзор архитектуры большой высоконагруженной информационной системы на примере топологии геокластера, построенного на базе Apache Kafka. Сравним stretched vs connected clusters и рассмотрим практические сценарии использования Mirror Maker 2.

В ходе доклада мы пройдем от простых сценариев до построения геораспределенной системы и изучим реальный проектный опыт использования Kafka в больших высоконагруженных системах. Буду рад, если эти знания принесут участникам конференции пользу и помогут при проектировании и реализации сложных распределенных систем, требующих обработки больших объемов данных в реальном времени.

CTO компании STM Labs.

Видео

Другие доклады секции

Архитектура