繁体   English   中英

无法使用pika连接到远程Rabbitmq服务器

[英]Unable to connect to remote rabbitmq server using pika

我正在尝试使用pika连接到我的远程Rabbitmq,但出现Connectionclosed()错误。 我在来宾用户的rabbit.config中进行了必要的更改,以允许所有连接,并且同样的连接也可以通过我的Java代码工作。 我什至尝试创建一个具有所有权限的新用户并进行连接,但仍然无法正常工作。 相同的代码在我的本地主机上工作正常。 有人可以让我知道我在这里做错什么吗?

def queue_message(message, queue):
    credentials = pika.PlainCredentials('xxxx', 'xxxx')
    parameters = pika.ConnectionParameters('remote-server',
                                   5672,
                                    '/',
                                    credentials)
   connection = pika.BlockingConnection(parameters)
   channel = connection.channel()
   channel.queue_declare(queue='python_update_queue')
   channel.basic_publish(exchange='update.fanout',
                  body=message)
   logger.info("Sent message: {} to queue: {}".format(message, queue))
   print 'message sent'
   connection.close()

以下是我得到的错误:

app/project/rabbitmq.py" in queue_message
connection = pika.BlockingConnection(parameters)
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in __init__
     self._process_io_for_connection_setup()
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in ss_io_for_connection_setup
                        self._open_error_result.is_ready)
env/lib/python2.7/site-packages/pika/adapters/blocking_connection.py" in _flush_output
         raise exceptions.ConnectionClosed

在您的连接参数中添加连接超时-您可能会遇到超时问题,其中网络连接发生的速度不够快。

另外,您的代码正在显式调用connection.close() ...因此,这可能就是您的连接正在关闭的原因

这确实是一个超时问题。 在增加连接参数的超时后,可以正确建立连接。

parameters = pika.ConnectionParameters('remote-server',
                                   5672,
                                   '/',
                                   socket_timeout=2)

如果连接到远程Rabbitmq服务器,请检查以下内容:

  1. 使用防火墙打开远程服务器端口

  2. 远程服务器具有公共ip,rabbitmq用户有权访问该服务器

  3. Rabbitmq服务器正在运行
  • 在管理员标签中添加您的用户管理员;

     rabbitmqctl set_user_tags admin administrator 
  • 向用户管理员添加足够的权限

     rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM