9 articles RabbitMQ

13 обычных ошибок при работе с RabbitMQ

Мы много лет используем RabbitMQ, и вероятно, видели больше ошибок конфигурации, чем кто-либо другой. Вот список, который поможет вам избежать наших ошибок использования RabbitMQ! Не открывать и закрывать соединения или каналы повторно Процесс установления связи для соединения AMQP фактически задействует как минимум 7 TCP-пакетов (если используется TLS). При необходимости каналы можно открывать и закрывать чаще.…

Сервис оповещения миллиона пользователей с помощью RabbitMQ

Почти в самом начале создания платформы (некоего фундамента, фреймворка на котором базируются все прикладные решения) нашего облачного веб-приложения СБИС мы поняли, что без инструмента, позволяющего сообщить пользователю о каком-либо событии с сервера, жить будет довольно-таки трудно. Все мы хотим мгновенно видеть новое сообщение от коллеги (которому лень пройти 10 метров), поднимающую корпоративный дух новость от…

RabbitMQ tutorial 3 — Публикация/Подписка

https://habrahabr.ru/post/200870/ Хочу продолжить серию перевода уроков с официального сайта. Примеры будут на php, но их можно реализовать на большинстве популярных ЯП. Публикация/Подписка В предыдущей статье было рассмотрено создание рабочей очереди сообщений. Было сделано допущение, что каждое сообщение будет направлено одному обработчику(worker). В этой статье усложним задачу – отправим сообщение нескольким подписчикам. Этот паттерн известен как…

RabbitMQ tutorial 2 — Очередь задач

https://habrahabr.ru/post/150134/ В продолжение первого урока по изучению азов RabbitMQ публикую перевод второго урока с официального сайта. Все примеры, как и ранее, на python, но по-прежнему их можно реализовать на большинстве популярных ЯП. Очереди задач В первом уроке мы написали две программы: одна отправляла сообщения, вторая их принимала. В этом уроке мы создадим очередь, которая будет…

RabbitMQ tutorial 1 — Hello World

https://habrahabr.ru/post/149694/ RabbitMQ позволяет взаимодействовать различным программам при помощи протокола AMQP. RabbitMQ является отличным решением для построения SOA (сервис-ориентированной архитектуры) и распределением отложенных ресурсоемких задач. Под катом перевод первого из шести уроков официального сайта. Примеры на python, но его знание вовсе не обязательно. Аналогичные примеру программы можно воспроизвести практически на любом популярном ЯП. [так выглядят комментарии…

Highly Available кластер RabbitMQ

https://habrahabr.ru/post/193332/ Есть приложение (клиент) генерирующее сообщения, сообщения попадают в точку обмена, в зависимости от параметров сообщения и настроек точки обмена сообщение копируется в одну или несколько очередей (или просто удаляется), после чего клиенты могут забрать сообщения из очередей. Очередь связывается с точкой обмена по ключу маршрутизации или заголовку сообщения. Ключ маршрутизации — значение, которое указывается…

Кролик или RabbitMQ: основные понятия

Свиснуто отсюда: https://www.insight-it.ru/erlang/2012/rabbitmq/ Когда веб-приложение перестает быть просто коллекцией скриптов, генерирующих HTML, встает вопрос о взаимодействии различных компонентов системы. Есть два основных подхода: обращение напрямую посредством протоколов вроде Thrift или Protocol Buffers; либо посредством брокера сообщений, посредника, берущего на себя вопросы их маршрутизации и доставки одному или нескольким получателям, даже в случае сбоев оборудования и…

Начальный запуск RabbitMQ

После установки пакета необходимо выполнить команду: #rabbitmq-plugins enable rabbitmq_management и перезапустить rabbitmq После этого можно будет войти в web-интерфейс по адресу http://localhost:15672. Логин/пароль: guest/guest. Если необходим вход на удалённый сервер,  то поскольку удалённый вход по умолчанию запрещён, необходимо создать пользователя и дать ему права, например так (пользователь admin, пароль admin): # rabbitmqctl add_user admin admin…

RabbitMQ в связке с nginx как раздел сайта (кролик)

При настройке nginx для проксирования запросов в веб-интерфейс RabbitMQ (кролика), можно столкнуться с проблемой. Проблема не касается случаев, когда такое проксирование осуществляется для отдельного виртуалхоста, например, rabbitmq.mysite.com, а проявляется только, когда мы пытаемся пробросить запрос в веб-интерфейс RabbitMQ как в раздел сайта, например mysite.com/rabbitmq. Проблема заключается в том, что nginx убирает лишние символы «/» из…