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

preview_player
Показать описание
RabbitMQ - это брокер сообщений на основе стандарта AMQP (Advanced Message Queuing Protocol). Этот брокер внешний и запускается на конкретном порту вашего сервера, поэтому может использоватся разными приложениями или серверами. Он поможет вам организовать очередь или очереди сообщений и тем самым распределить нагрузку и организовать связь между вашими сервисами или серверами.

На этом канале будут околокомпьютерные видео, видео по обзорам железа софта и создания собственного софта.

Таймкоды:

00:00:00 - установка rabbit в docker
00:02:11 - установка пакета
00:04:35 - запись сообщения
00:06:34 - чтение и удаление сообщения (callback)
00:09:52 - чтение и удаление сообщения (await)
00:12:25 - теория

Команда докеру для разворачивания брокера:

docker run -d \
--hostname my-rabbit \
--name some-rabbit \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=user \
-e RABBITMQ_DEFAULT_PASS=password \
rabbitmq:3-management

Шаблон строки подключение:

Рекомендации по теме
Комментарии
Автор

Спасибо! Для первого знакомства с #RabbitMQ лучший урок. Без воды и лишних наворотов, наглядно.

chasubavil
Автор

в 8:32 на 19 строке метод аск не сработает так как она возвращает промис. Надо сделать так:

ch.consume(q, async (msg) => {
const mess = msg.content.toString();
console.log(mess);
await ch.ack(msg);

await ch.close();
await conn.close();
});

prostreyd
Автор

Нахрена так всё сокращать, такой код нереально читать потом в дальней дистанции

FobosWorld
Автор

Мужик, у меня чуть приступ эпилепсии не случился - у тебя всё на экране мелькает, какая-то куча ненужных подсказок всплывающих появляется, сокращение имён тебе конечно сильно время сэкономит (нет, потому что редактор кода всё будет подсказывать и так)

alexstepanchhuk
Автор

Что-то не понял, последний пример 14:10 (с очередью для каждого сервиса) имеется в виду что RabbitMQ сам распределяет запросы?
То есть, он сам видит что сервис нагружен и изымает запрос из очереди и кладет ее в другую?

kumb