RabbitMQ для Go: AMQP и не только
Курс по RabbitMQ — самому «человеческому» из брокеров: простая ментальная модель (exchange → queue → consumer) и самая густая часть с подводными камнями.
Цель: довести RabbitMQ от «hello world» до продакшена: свободно ориентироваться в AMQP-модели, выбирать тип exchange осознанно, строить надёжную доставку (publisher confirms, ack/nack/reject, prefetch), использовать DLX/TTL/priority как конструктор, понимать, что происходит в кластере, и собрать лабораторную «Надёжный воркер».
Состав:
- RabbitMQ — классика с характером — connection/channel/exchange/queue, 4 типа exchange, publisher confirms, prefetch и ack-стратегии, quorum queues и кластер, DLX-цепочки, TTL, priority, lazy-режим, graceful shutdown. Лабораторная «Надёжный воркер» с retry и DLQ.
- Мониторинг: очереди, alarms, flow — триада ready/unacked/consumers, publish vs deliver, memory/disk alarms (alarm на одном узле блокирует весь кластер!), плагин rabbitmq_prometheus, дашборд, пять алертов.
- Инциденты — memory alarm под нагрузкой, «мёртвый хват» unacked, poison-циклы через DLX, flow control и blocked publishers, шторм соединений: симптом → метрика → причина → лечение, всё воспроизводится на кластере.
- Streams и multi-DC — RabbitMQ Streams как лог с replay и офсетами, shovel для миграций/DR, federation для Active-Active гео; честное решение «Streams или Kafka».
Формат: теория с Go-кодом (amqp091-go, rstream-go) в каждом
уроке, лабораторные с chaos-воспроизведениями, квиз, шпаргалки.
Стенд — кластер из трёх узлов (make up), метрики и Prometheus —
make up-obs, лабы alarm/отказ узла — make mem-alarm, make kill-node.
Темп: ~10 недель (70–80 часов). Предварительно — курс трека «Фундамент брокеров сообщений».