pika.exceptions.ProbableAuthenticationError 尝试将消息发送到远程队列时

pika.exceptions.ProbableAuthenticationError when trying to send message to remote queue

我正在尝试 运行 RabbitMQ Python tutorial 但是发送方在 virtualbox 主机上,接收方和队列在 virtualbox 客户机上。所以我修改了提到的 send.py 代码,仅将 localhost 替换为 192.168.1.5。当我 运行 它时,我收到以下错误:

...
  File "/home/damian/.virtualenvs/kivy_1.9/local/lib/python2.7/site-packages/pika/adapters/base_connection.py", line 153, in _check_state_on_disconnect
    raise exceptions.ProbableAuthenticationError
pika.exceptions.ProbableAuthenticationError

rabbitmq-server 似乎是 运行ning,因为当我停止它时 send.py 给我:

...
  File "/home/damian/.virtualenvs/kivy_1.9/local/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 301, in _adapter_connect
    raise exceptions.AMQPConnectionError(error)
pika.exceptions.AMQPConnectionError: Connection to 192.168.1.5:5672 failed: [Errno 111] Connection refused

这很有道理。

如何解决 ProbableAuthenticationError

主机是 Debian 7 Python 2.7.3 和 pika 0.9.14,来宾是 Ubuntu 15.04 和 rabbitmq-server 3.4.3-2

这是因为您正在尝试使用用户名和密码 guest 远程进行身份验证。从RabbitMQ 3.3开始需要新建账号才能远程使用,guest/guest只能在本地使用。

这取自更改日志 here

25603 prevent access using the default guest/guest credentials except via localhost since (1.0.0)

可以修改 RabbitMQ 配置以允许使用 guest 帐户进行远程访问,方法是从 loopback_users 中删除 guest,但建议创建一个新用户以最好遵循做法。

[{rabbit, [{loopback_users, []}]}].