Я создал кластер кролика в двух экземплярах на EC2. В моем приложении django используется сельдерей для задач async, который, в свою очередь, использует RabbitMQ для очереди сообщений.Django Сельдерей не может подключиться к удаленному RabbitMQ на EC2
Всякий раз, когда я начинаю сельдерей с помощью команды:
python manage.py celery worker --loglevel=INFO
ИЛИ
python manage.py celeryd --loglevel=INFO
Я получаю следующее сообщение об ошибке, связанной с удаленным RabbitMQ:
[2015-05-19 08:58:47,307: ERROR/MainProcess] consumer: Cannot connect to amqp://myuser:**@<ip-address>:25672/myvhost/: Socket closed.
Trying again in 2.00 seconds...
Я установить разрешения с помощью:
sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"
и затем перезапущен rabbitmq-server
на обоих узлах кластера. Однако это не помогло.
В файле журнала, я вижу несколько записей, как показано ниже:
=INFO REPORT==== 19-May-2015::08:14:41 ===
accepting AMQP connection <0.1981.0> (<ip-address>:38471 -> <ip-address>:5672)
=ERROR REPORT==== 19-May-2015::08:14:44 ===
closing AMQP connection <0.1981.0> (<ip-address>:38471 -> <ip-address>:5672):
{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost 'myvhost' refused for user 'myuser'",
'connection.open'}}
ли питон рабочие и RabbitMQ в разных случаях? – dgil
Да. Работник сельдерея находится на моем ноутбуке, а rabbitmq находится на EC2. – Dharmit
Хорошо, проблема в том, что ваш экземпляр находится за брандмауэром в EC2, и он не принимает запросы извне. – dgil