← Все навыки

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

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

7 модулей + практика 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

Архитектура, топики, партиции, репликация, consumer groups
  • Pull-модель: потребитель сам запрашивает данные из топика
  • Топики и партиции: логическое и физическое распределение данных
  • KRaft вместо Zookeeper для управления кластером
  • ISR (In-Sync Replicas) и репликация для надёжности

Стратегии использования Kafka

Топология топиков, партиционирование, производительность
  • Выбор между одним общим топиком и отдельными топиками по типам сущностей
  • Стратегии партиционирования: по 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 как основной движок хранения

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

Hands-on работа с каждой технологией в Docker

  • Поднятие кластера Kafka из 3 узлов с KRaft в Docker Compose
  • Настройка RabbitMQ: exchanges, bindings, маршрутизация сообщений
  • Работа с ClickHouse: загрузка данных, аналитические запросы, оптимизация