Тренажёры · RabbitMQ UI
Тренажёр RabbitMQ без Docker и установки
Создашь очередь и exchange, найдёшь сервис, который забыл ack, и уведёшь битый заказ в dead letter очередь. 8 заданий в Management UI, около 15 минут
Вход по ссылке на почту, без пароля. Без входа тренажёр работает на этой странице
Зачем
RabbitMQ есть в вакансии, а руками ты его не трогал
«В вакансии RabbitMQ, а exchange и binding для меня пока просто слова»
Ты заведёшь их сам и увидишь, почему заказ с ключом, под который нет binding, пропадает без следа
«Поднимать RabbitMQ в Docker ради пары опытов долго»
Тренажёр открывается в браузере. Брокер внутри — модель RabbitMQ, ломать её можно сколько угодно и начать заново одной кнопкой
«С Kafka разобрался, а чем от неё отличается очередь, объяснить не могу»
На третьем шаге ты подтвердишь заказ через ack и проверишь, что в очереди его больше нет. В Kafka прочитанное остаётся в логе
Программа
RabbitMQ для начинающих: 8 шагов от очереди до DLX
Один интернет-магазин, exchange заказов и два сервиса, которые их читают. Каждый шаг — то, что на работе делают в Management UI
Основной трек · 8 шагов · около 15 минут
Очередь
Создашь очередь заказов, в которую магазин кладёт заказ и не ждёт биллинг
Публикация
Положишь заказ в очередь прямо из Management UI и увидишь, как вырос Ready
Ack
Достанешь заказ дважды и проверишь, что после ack его в очереди больше нет
Exchange и binding
Переведёшь магазин на exchange типа direct и узнаешь, куда пропадает заказ с чужим ключом
Очередь без читателя
Заведёшь аналитике свою очередь и по графику увидишь, как копятся заказы, пока сервис выключен
Unacked
Запустишь сервис без ack и найдёшь заказы, которые он взял и не подтвердил
Битый заказ
Отправишь битый заказ и по графикам поймёшь, почему requeue крутит его по кругу
Dead letter exchange
Через policy уведёшь отклонённый заказ в очередь DLQ и прочитаешь заголовок x-death
Экзамен · 4 поломки
После основного трека. Без подсказок и Деметры, с секундомером
- Складу нужны заказыОтдать складу копию каждого заказа, не трогая магазин
- Аналитика ничего не получаетСервис запущен, магазин работает, а заказы не доходят. Найти, где порвался путь
- Счета не выставляютсяЗаказы копятся, хотя сервис запущен. Разобраться по графикам очереди
- Откуда заказ в DLQСервис ничего не отклонял, а заказ в DLQ. Узнать причину, не потеряв его
Как устроен RabbitMQ
RabbitMQ для начинающих: куда уходит заказ
Схема магазина, с которым ты работаешь в тренажёре. Её же Деметра открывает, когда очередь копит заказы и когда битый заказ уходит в DLQ
Магазин публикует в exchange
Shop Service отдаёт заказ в
shopс ключомorder.createdи не знает, какие очереди его ждутBinding решает, куда класть
Два binding с одним ключом — и у
orders, и уanalyticsсвоя копия заказаОчередь копит, пока не заберут
Выключил Analytics Service — его заказы ждут в очереди, Ready на графике растёт
После ack сообщения нет
Billing подтвердил заказ, и очередь его забыла. В Kafka прочитанное остаётся в логе
Битый заказ уходит в DLX
Policy пересылает отклонённый заказ в
orders.dlq. Поток идёт дальше, заказ не потерян
Попробуй
Запусти тренажёр RabbitMQ UI на этой странице
Тот же тренажёр, что в разделе «Тренажёр» платформы. Без входа, прогресс останется в этом браузере
RabbitMQ за 15 минут
- Создашь очередь, exchange и binding и увидишь, куда уходит сообщение
- По графикам Ready и Unacked найдёшь сервис, который упал или забыл ack
- Уведёшь битый заказ в dead letter очередь через policy
Management UI рассчитан на широкий экран: таблицы очередей и формы не помещаются в узкое окно. Открой страницу на компьютере и разверни окно браузера
Без входа и установки. Прогресс сохраняется в этом браузере
Как работает
Как пользоваться RabbitMQ Management, если открываешь его впервые
Деметра ставит задачу
Каждый шаг — задача интернет-магазина: завести очередь заказов, дать аналитике свою копию, понять, куда пропал заказ
Ты решаешь её в Management UI
Вкладки Exchanges, Queues and Streams и Admin, формы свёрнуты, как в настоящем RabbitMQ. Нагрузку даёт Эмулятор: магазин шлёт заказы, а Billing и Analytics Service ты включаешь сам
Застрял — бери подсказку
Подсказки идут по ступеням: где искать, что сделать, в конце кольцо вокруг нужной кнопки и «Покажи как»
Шаг засчитывается по факту
Тренажёр смотрит на состояние брокера: очередь создана, binding на месте, заказ лежит в DLQ. После шага — вывод одной строкой
Сравнение
Чем RabbitMQ отличается от Kafka
Оба брокера возят сообщения между сервисами, но устроены по-разному. Прошёл тренажёр Kafka — вот что в RabbitMQ будет иначе
Вопросы
Что спрашивают про тренажёр RabbitMQ
- Нужно ли ставить RabbitMQ или Docker?
- Нет. Тренажёр работает в браузере: RabbitMQ внутри него — модель на JavaScript с exchange, очередями, binding, policy и ack. Сервер и установка не нужны
- Это настоящий RabbitMQ Management UI?
- Это копия ключевых экранов RabbitMQ Management UI 4.3: Overview, Exchanges, Queues and Streams, Admin с policy, графики Queued messages и Message rates. Вёрстку и поведение сверяли с живым RabbitMQ, тексты ошибок повторяют живой RabbitMQ. Под интерфейсом модель, а не настоящий брокер, поэтому ломать её можно без последствий
- Подойдёт, если я никогда не работал с RabbitMQ?
- Да. Первый шаг — создать очередь, и перед ним Деметра объясняет, зачем сервисам брокер. Дальше каждое понятие появляется тогда, когда без него задача не решается
- Сколько времени займёт?
- Основной трек — 8 шагов, около 15 минут. После него можно сдать экзамен из 4 поломок без подсказок. Продвинутого трека, как у тренажёра Kafka, у этого тренажёра нет
- Что такое exchange и binding простыми словами?
- Exchange — точка, куда отправитель кладёт сообщение с ключом. Binding — правило «сообщения с этим ключом клади в эту очередь». Нет подходящего binding — сообщение никуда не попадёт, и в тренажёре ты это увидишь сам
- Можно пройти с телефона?
- Нет. Management UI рассчитан на большой экран: таблицы очередей и формы не помещаются в телефон. Открой страницу с компьютера или ноутбука
- Сохранится ли прогресс?
- Да, в этом браузере. Закрыл вкладку — в следующий раз продолжишь с того же шага. Начать заново можно со стартового экрана
- Какие темы для собеседования есть в тренажёре?
- Чем очередь отличается от лога Kafka, как exchange типа direct выбирает очередь по ключу, что значат Ready и Unacked, что будет с сообщением без ack, почему requeue крутит битое сообщение по кругу и как dead letter exchange с policy это чинит
Пройди путь заказа через RabbitMQ руками до собеседования
8 заданий в Management UI, около 15 минут. Потом экзамен без подсказок

