Pika не может использовать RabbitMQ с удаленного IP-адреса

Я использую Python и pika, потому что хочу отправлять данные с RabbitMQ с сервера на другой.

Я следовал следующему руководству по созданию потребителя и производителя: https://www.rabbitmq.com/tutorials/tutorial-one-python.html

На той же машине я могу отправлять сообщения на локальный хост и читать с локального хоста, и это будет работать.

А вот с сервера на другой выдаст такие ошибки, как ConnectionClosed, ProbableAccessDeniedError, ProbableAuthenticationError

Я попытался создать учетные данные с правами администратора вместо использования учетных данных гостя/гостя по умолчанию. Я также увеличил время ожидания с 0,25 до 2 секунд.

 credentials = pika.credentials.PlainCredentials(server['username'], server['password'], erase_on_connect=False)

 connection = pika.BlockingConnection(pika.ConnectionParameters(host=server['ip'], credentials=credentials, socket_timeout=2))

Я даже пытался отправлять и получать с одной и той же машины, но вместо указания «localhost» я укажу IP-адрес машины, и это не сработало.


person Alexandre Paroissien    schedule 28.06.2017    source источник


Ответы (1)


Я узнал, что проблема была на удаленном сервере, на котором размещен производитель.

Созданный мной пользователь был администратором, но не имел разрешений.

В основном вот решение (это третья строка, которую я изначально забыл):

sudo rabbitmqctl add_user alex password
sudo rabbitmqctl set_user_tags alex administrator
sudo rabbitmqctl set_permissions -p / alex ".*" ".*" ".*"
person Alexandre Paroissien    schedule 28.06.2017