rabbitmq 凭据问题。仅适用于本地主机

rabbitmq credential issue. only works with localhost

我有一个关于 rabbitmq 的问题。我正在尝试根据队列名称设置一个消息传递系统,到目前为止,localhost 一切都很好。一旦我为本地连接设置了一些凭据,我就会收到超时错误。 (超时时间我也加长了。)我也给了用户管理权限和来宾账户管理权限。 运行 使用消费和生产脚本时出现此错误。端口 5672 也已打开。这一切都是在 ubuntu 14.04 LTS 机器和 python 2.7.14 上完成的。来宾和我的其他兔子用户也都可以使用默认虚拟主机。

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

RabbitMQ 团队监控 the rabbitmq-users mailing list 并且有时只在 Whosebug 上回答问题。


您可能 运行 遇到多个问题。

首先,guest用户默认只能通过localhost连接。 This document 进入细节。 FWIW 当 site:rabbitmq.com localhost guest 被用作 google 上的搜索词时,该文档是第一个命中。

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