rabbitmq凭证问题。仅适用于localhost

时间:2018-06-11 11:31:40

标签: python rabbitmq pika

我对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

1 个答案:

答案 0 :(得分:0)

RabbitMQ团队监控the rabbitmq-users mailing list,有时只回答StackOverflow上的问题。

您可能遇到了多个问题。

首先,guest用户默认只能通过localhost进行连接。 This document详细介绍。 FWIW该文档是site:rabbitmq.com localhost guest在Google上用作搜索字词时的首次点击。

其次,timeout表示无法建立TCP连接。有关诊断的分步指南,请参阅this document