我对rabbitmq有疑问。我正在尝试根据队列名称设置一个消息传递系统,到目前为止,一切都很好用localhost。一旦我为本地连接设置了一些凭据,我就会收到超时错误。 (我也延长了超时时间。)我还给了用户管理权限和来宾帐户管理权限。使用consume和produce脚本运行时出现此错误。 5672端口也是开放的。这一切都是在ubuntu 14.04 LTS机器和python 2.7.14上完成的。来宾和我的其他兔子用户也被允许使用默认的vhost。
import pika, json
credentials = pika.credentials.PlainCredentials('guest', 'guest')
connection = pika.BlockingConnection(pika.ConnectionParameters('<ip here>',
5672, '/', credentials))
channel = connection.channel()
result = channel.queue_declare(queue='hello', durable=True)
def callback(ch, method, properties, body):
print "localhost received %r" % json.loads(body)
channel.basic_consume(callback,
queue='hello')
print 'localhost waiting for messages. To exit press CTRL+C'
channel.start_consuming()
channel.close()
这也是我的错误消息。只是一个超时方法,这会让我觉得连接失败,这是一个网络问题,但当我用'localhost'替换我的IP凭证,一切正常。有什么想法吗?
pika.exceptions.ConnectionClosed: Connection to <ip here>:5672 failed: timeout
答案 0 :(得分:0)
RabbitMQ团队监控the rabbitmq-users
mailing list,有时只回答StackOverflow上的问题。
您可能遇到了多个问题。
首先,guest
用户默认只能通过localhost
进行连接。 This document详细介绍。 FWIW该文档是site:rabbitmq.com localhost guest
在Google上用作搜索字词时的首次点击。
其次,timeout
表示无法建立TCP连接。有关诊断的分步指南,请参阅this document。