← Все навыки

Брокеры сообщений

Научитесь проектировать системы асинхронного обмена данными: Kafka, RabbitMQ, ClickHouse — от основ до продакшена

4 модуля, квиз в каждом Middle+ / Senior Kafka, RabbitMQ, ClickHouse Индивидуально с ментором

Для кого этот курс

  • Бэкенд-разработчики, проектирующие микросервисные архитектуры с асинхронным обменом данных
  • DevOps-инженеры, настраивающие инфраструктуру для Kafka и RabbitMQ
  • Архитекторы, которым нужно выбрать между брокерами и обосновать решение

Что вы получите

Глубокое понимание Архитектура брокеров изнутри: очереди vs журналы, гарантии доставки, партиции
Практические навыки Поднимете кластер Kafka из 3 узлов, настроите RabbitMQ и ClickHouse в Docker
Выбор технологий Научитесь выбирать между Kafka и RabbitMQ для конкретных сценариев
Аналитика на ClickHouse Колоночное хранение, MergeTree, обработка терабайтов данных

Программа курса

Основы брокеров сообщений

Producer, Consumer, очереди vs журналы, гарантии доставки
  • Producer-Consumer модель, Subscription и основные паттерны взаимодействия
  • Очередь (FIFO, удаление после чтения) vs Журнал (append-only, повторное чтение)
  • Гарантии доставки: At Most Once, At Least Once, Exactly Once
  • Dead Letter Queue (DLQ) для обработки проблемных сообщений

Apache Kafka

Архитектура, партиции, репликация и стратегии хранения событий
  • Pull-модель: потребитель сам запрашивает данные из топика
  • Топики и партиции: логическое и физическое распределение данных
  • KRaft вместо Zookeeper для управления кластером
  • ISR (In-Sync Replicas) и репликация для надёжности
  • Стратегии хранения событий: один общий топик против топиков по типам сущностей
  • Партиционирование по event_type, user_id, session_id
  • Буферизация и sticky sessions при миллионных QPS

RabbitMQ

Очереди, exchanges, bindings, кластеризация
  • Push-модель доставки сообщений в отличие от Kafka
  • 5 типов Exchange: Direct, Default, Fanout, Topic, Headers
  • Очереди с TTL, Dead Letter Exchange, durability и auto-delete
  • Идемпотентность и стратегии повторной отправки

ClickHouse

Колоночное хранение, MergeTree, аналитика на больших данных
  • Колоночное хранение вместо строкового для аналитических запросов
  • Гранулы (granules) как минимальные блоки данных
  • Разреженные индексы: 1 запись на каждые 8192 строки
  • MergeTree как основной движок хранения

Практические задания

Работа с каждой технологией в Docker и сквозной микросервис в финале

  • Kafka: поднять кластер, создать топик, разобрать replication factor, min.insync.replicas, cleanup policy и retention; продюсер и консьюмер на Python, Java и Go
  • RabbitMQ: очереди и маршрутизация через Default, Direct, Topic и Fanout exchange
  • ClickHouse: развернуть кластер, загрузить данные, аналитические запросы, асинхронный клиент
  • Финальная работа: микросервис хранения событий на Python, очереди и ClickHouse — REST API, продюсер, консьюмер, партиционирование, ретраи
  • Защита решения с ментором в формате архитектурного комитета