RabbitMQ с нуля

Всем привет!
Смешно, конечно, но стоит ли ставить RMQ на винде? Потыкался, по дефолту все ставится, начал пытаться настраивать через rabbitmq.conf - любой файл вызывает падение сервиса.
В связи с этим вопрос: Как по фен-шую сам RMQ ставить и дальше настраивать LDAP и т.д.?

Да, рэббит вполне работает под виндой. Что настраиваешь, какие ошибки?

3.7.3. Установил. Сделал
rabbitmq-plugins.bat enable rabbitmq_management
Стартую сервис - ок - запускается. Далее хочу что-нибудь поменять и создаю файл rabbitmq.conf (даже пустой) по адресу AppData\Roaming\RabbitMQ - перезапускаю сервис он крашится с дампом erl_crash.dump

=erl_crash_dump:0.5
Tue Feb 27 08:25:25 2018
Slogan: init terminating in do_boot (generate_config_file)
System version: Erlang/OTP 20 [erts-9.2] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:64]
Compiled: Mon Dec 11 21:32:15 2017
Taints: erl_tracer,zlib
Atoms: 10182
Calling Thread: scheduler:2
=scheduler:1
Scheduler Sleep Info Flags: SLEEPING | TSE_SLEEPING | WAITING
Scheduler Sleep Info Aux Work:
Current Port:
Run Queue Max Length: 0
Run Queue High Length: 0

Откатился до 3.6.15 - заработало с простыми конфигами

а если добавить туда пустые квадратные (или фигурные, не помню точно формат) скобки?

[].

тоже не работало.

Через год - но всё же. Вы хотели феншуй - ну так вот он:

RabbitMQ кластер на Windows

порядок действий

  • вдумчиво читаем с переводчиком (Google Translate на пример)

  • останавливаемся на 5 минут

  • на ХОСТЕ создаем спецпользователя RMQSAСС и разрешаем ему RDP и установку приложений и запуск служб.

  • для пользователя RMQSAСС (расшифровывается как RabbitMQ Service Account) устанавливаем запрет смены пароля пользователем и отключаем истечение срока действия пароля

  • создаем переменную окружения в системе %RABBITMQ_BASE% равную например C:\RMQData - можно менять диск, но не меняйте название

  • останавливаемся на 5 минут - видим что везде имена меньше 8 символов. RMQData и RMQSACC

  • заходим по RDP на хост под пользователем RMQSAСС

  • устанавливаем Erlang в каталог C:\erlang

  • устанавливаем RabbitMQ в каталог C:\rabbitmq

    • при установке убираем галочку “Install as a service”
  • останавливаемся на 5 минут - видим что адреса каталогов установки с МАЛЕНЬКОЙ БУКВЫ

  • открываем каталог C:\rabbitmq<текущая версия>\sbin\

  • редактируем файл rabbitmq-server.bat - заменяем в нем магическое set TDP0=%~dp0 на set TDP0=%~dps0 что отвечает за принудительно сокращение путей

  • запускаем команду через cmd C:\rabbitmq\<текущая версия>\sbin\rabbitmq-service.bat install

  • заходим в службы - находим службу RabbitMQ Server, устанавливаем учетную запись запуска службы RMQSAСС

  • запускаем службу - убеждаемся в каталоге C:\Users\RMQSAСС\ есть файл .erlang.coockie - это уникальный ключ ноды-хоста

  • останавливаемся на 5 минут - приступаем к проверке

  • запускаем команду через cmd C:\rabbitmq\<текущая версия>\sbin\rabbitmq-ctl status убеждаемся что выведен список текущих настроек в JSON и нед надписи Error - если есть Гуглим текст ошибки Error

  • на ХОСТЕ отбираем права у пользователя RMQSAСС на запуск RDP и установку приложений. Должны остаться права только на "запуск служб"и на указанные каталоги

ХОСТ ГОТОВ

если хотим построить кластер - воспроизводить указанные действия на каждом хосте.

Дальнейшее администрирование

  • для выполнения любых действий - включаем RDP для спец пользователя RMQSAСС
  • выполняем через RDP нужные команды
  • отключаем RDP
  • по возможности используем RabbitMQ Management Plugin для администрирования

:wink:

1 Симпатия

жестоко…

я так понял - они (авторы RabbitMQ) особо не заморачивались и сделали инсталятор “как могли” с повторением архитектуры Linux. отсюда и указанные артефакты

Может пригодится кому:
для установки менеджмент
cmd C:\rabbitmq\<текущая версия>\sbin\rabbitmq-plugins.bat enable rabbitmq_management

после рестартуем сервис RabbitMQ
cmd C:\rabbitmq\<текущая версия>\sbin\rabbitmq-service.bat stop
cmd C:\rabbitmq\<текущая версия>\sbin\rabbitmq-service.bat start

админка RabbitMQ: доступна http://localhost:15672
логин пароль (guest/guest)`