[英]How to connect pika to rabbitMQ remote server? (python, pika)
[英]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服务器,请检查以下内容:
使用防火墙打开远程服务器端口
远程服务器具有公共ip,rabbitmq用户有权访问该服务器
在管理员标签中添加您的用户管理员;
rabbitmqctl set_user_tags admin administrator
向用户管理员添加足够的权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.