Apache Kafka для Go: от партиций до продакшена
Курс по Kafka для тех, кому нужна не «очередь с топиками», а распределённый лог: постоянное хранение, порядок внутри партиции, consumer groups и replay как нормальная операция.
Цель: довести Kafka от «hello world» до продакшена: осознанно выбирать партиционирование и acks, писать консьюмеров с понятной стратегией коммитов, применять транзакции и идемпотентного продюсера там, где они действительно нужны, эволюционировать схемы без простоя и эксплуатировать KRaft-кластер.
Состав (стартовый модуль):
-
Apache Kafka — поток, который не остановить — topic/partition/offset, consumer groups и rebalance, продюсер (батчинг, сжатие, acks), commit strategies, exactly-once и честные ограничения, retention и compacted topics, Schema Registry, sink в PostgreSQL, KRaft. Лабораторная «Event-sourced счёт» и квиз с разбором каждого варианта.
-
Мониторинг: lag, ISR, request latency — четыре группы метрик, kafka-exporter + Prometheus, дашборд из восьми панелей, пять алертов (и почему «lag > 0» — не алерт); lag-ловушки: стабильный лаг, горячая партиция, время догона.
-
Инциденты: rebalance storm, ISR shrink, disk full — шесть разборов «симптом → метрика → причина → лечение»: rebalance-шторм и таймауты группы, три лица растущего lag, NOT_ENOUGH_REPLICAS как предохранитель, сегменты и retention, дубли/потери от автокоммита; инцидент-квиз.
-
Тюнинг под нагрузкой и exactly-once в проде — linger/batch/compression в цифрах, static membership для K8s, транзакции Kafka (когда нужны, цена, franz-go в Go), MirrorMaker 2 и границы multi-DC.
Формат: теория с Go-кодом (segmentio/kafka-go) в каждом уроке,
лабораторные с testcontainers, квиз, шпаргалки. Стенд — KRaft-кластер из
трёх брокеров (make up), наблюдаемость — make up-obs, chaos-лабы —
make kill-broker / make up-broker.
Темп: ~10 недель (70–80 часов). Предварительно — курс трека «Фундамент брокеров сообщений».