RabbitMQ Как настроить производителя и клиентскую среду?

У меня есть новая установка RabbitMQ на сервере linux/ubuntu. Допустим, сервер работает под доменом superserver.com. Какие шаги я должен предпринять сразу после его установки, потому что я не могу подключиться к нему с удаленного потребителя/производителя? Нужно ли что-то менять в конфигурационном файле? Я спрашиваю, потому что у меня нет доступа к серверу, и мне нужна инструкция, чтобы сообщить администратору, что делать дальше.

Еще одна вещь, которая меня беспокоит. Нужно ли устанавливать RabbitMQ и на клиентах, или это просто необходимо для кластеров?

Заранее спасибо !


person Kamil N.    schedule 21.03.2012    source источник


Ответы (2)


Вам не нужно ничего делать для установки по умолчанию для подключения к виртуальному хосту по умолчанию с идентификатором пользователя: «guest» и паролем: «guest».

По умолчанию установщик не устанавливает плагин управления, который вы хотите установить на отлаживать и управлять вещами проще. В Linux просто запустите следующее:

rabbitmq-plugins enable rabbitmq_management

Убедитесь, что он запущен и работает, перейдя по следующему URL-адресу:

http://superserver.com:55672/mgmt/

После этого я бы порекомендовал вам создать пользователя «admin» либо из командной строки, либо через веб-сайт управления.

rabbitmqctl.bat add_user admin [admin password]
rabbitmqctl.bat set_permissions -p / admin ".*" ".*" ".*"

Затем я бы удалил пользователя «гость» или, как минимум, изменил пароль. Оттуда вы сможете протестировать клиентское соединение и войти на сайт управления, чтобы увидеть, публикуются ли ваши сообщения.

Для клиентской стороны вам просто нужна клиентская библиотека RabbitMQ, а не сам кролик. По сути, это библиотека, которая знает, как выполнять команды ampq через соединение TCP/IP. Если вы работаете с Java, вы можете загрузить клиент Java здесь.

person Derek Greer    schedule 21.03.2012
comment
Также убедитесь, что tcp-порты 5672 (для amqp) и 55672 (для управления) открыты. - person Steve Martin; 22.03.2012
comment
Пока мне не удалось найти работающее решение. Пробовал создать нового пользователя. Порты открыты, телнет подключение к порту 5672 принято. Я также установил RabbitMQ в Windows 7, и он отлично работает под локальным хостом с той же машины. Я использую библиотеку .NET, и при подключении я получаю исключение: ни одна из указанных конечных точек не была доступна. Какие настройки следует передать в класс ConnectionFactory? Я пробовал все возможные комбинации, но все равно не повезло :( - person Kamil N.; 22.03.2012

Окончательно !

После некоторых исследований я нашел решение этой проблемы. Пишу сюда, чтобы все видели. Мне пришлось изменить версию протокола AMQP. По умолчанию установлено значение AMQP 0-9, но RabbitMQ работает с: AMQP 0-8! Так вот как это должно выглядеть для С#:

ConnectionFactory factory = new ConnectionFactory();
factory.HostName = "your.hostname.com";
factory.Protocol = RabbitMQ.Client.Protocols.AMQP_0_8;

Надеюсь, поможет :)

person Kamil N.    schedule 22.03.2012
comment
Вы должны использовать более старую версию RabbitMQ. - person Derek Greer; 27.03.2012