Как настроить экземпляр RabbitMQ с Docker в Windows и начать отправлять сообщения.

Хотите быстро запустить RabbitMQ в среде разработки Windows? Может быть, вы просто хотите попробовать наиболее развернутый брокер сообщений, но не хотите пробовать его в Azure, или попросите свою ИТ-команду развернуть новый сервер только для этого: Docker - ваше решение.

  1. Установить Docker для Windows: просто скачайте его, а все остальное сделает установщик.
  2. Запустите Docker и дождитесь его инициализации. Вы увидите значок кита на панели задач.
  3. Откройте Powershell и введите:

Если вы не видите никаких ошибок, но видите версию Docker, она установлена ​​правильно.

4. Теперь нам нужно загрузить образ RabbitMQ. В этом случае мы загрузим изображение с помощью подключаемого модуля управления, чтобы иметь возможность просматривать графический интерфейс RabbitMQ на стороне сервера. Команда для загрузки или обновления образа Docker: pull

5. Теперь мы запустим образ RabbitMQ Docker с помощью простой команды:

С аргументом p мы сопоставляем порты RabbitMQ с портами контейнера Docker. 15672 - порт по умолчанию для GUI RabbitMQ, 5672 - для брокера сообщений RabbitMQ. Аргументом name мы даем имя нашему контейнеру, чтобы идентифицировать его более читаемым способом, чем использование сгенерированного GUID. Это позволит нам легко останавливать, удалять и управлять нашими контейнерами. В конце мы указываем образ докера для запуска, в данном случае тот, который мы вытащили ранее.

Если операция прошла успешно, на выходе вы увидите GUID.

6. Протестируйте изображение, открыв http: // localhost: 15672 / # / »в вашем браузере. Вход по умолчанию - guest guest: вы должны увидеть графический интерфейс управления RabbitMQ.

Если вы видите эту страницу правильно, самая важная часть сделана!

7. Теперь мы готовы отправлять сообщения на нашу конечную точку RabbitMQ! На этом этапе выбор за вами: я ежедневно работаю с .NET, поэтому покажу вам пример C #. Напоминаем, что значения по умолчанию для подключения к конечной точке с вашим предпочтительным языком:

  • HostName: “localhost”
  • UserName: “guest”
  • Password: “guest”
  • Port: 5672

В моем случае я создам новое консольное приложение Windows, установлю пакет RabbitMQ.Client Nuget и напишу несколько строк кода для создания очереди и отправки сообщения каждые 500 миллисекунд:

В этом случае я использую небольшой чит, связанный с RabbitMQ: я отправляю сообщения непосредственно в очередь, не устанавливая привязку к обмену, путем установки ключа маршрутизации метода публикации с тем же именем, что и объявленная мной очередь. .

8. В конце мы хотим быть уверены, что сообщения правильно принимаются очередью. Мы можем просто открыть графический интерфейс управления, нажать Queues кнопку навигации, а затем testqueue. Если мы отправляем сообщения, мы увидим движение линий графика:

Кроме того, вы можете щелкнуть меню Get messages, чтобы взять сообщение из очереди и прочитать его тело:

У меня нет опыта, чтобы сказать, как Docker работает в производственных средах, но в тестовых / учебных средах я думаю, что Docker действительно инфраструктура, экономящая время!