使用RabbitMQ将消息从一台PC发送到另一台
我有三台PC,其中两台PC是生产商,一台是消费者。使用Python,我如何让他们相互沟通。我可以在localhost上做同样的事情,我遵循RabbitMQ网站上的教程。在那里他们提到我所要做的就是添加IP地址而不是本地主机,但这不起作用。请在这里帮忙。使用RabbitMQ将消息从一台PC发送到另一台
编辑:
我已经做了以下修改我的代码使用鼠来验证用户名和密码。我仍收到错误
为receive.py的代码如下:
import pika
credentials = pika.PlainCredentials('sneha', 'sneha')
connection = pika.BlockingConnection(pika.ConnectionParameters('[email protected]', 5672, '/', credentials))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(callback,
queue='hello',
no_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
我收到以下错误:
Traceback (most recent call last):
File "receive.py", line 4, in <module>
connection = pika.BlockingConnection(pika.ConnectionParameters('[email protected]', 5672, '/', credentials))
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in __init__
self._process_io_for_connection_setup()
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup
self._open_error_result.is_ready)
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output
raise exceptions.ConnectionClosed()
pika.exceptions.ConnectionClosed
教程使用guest
RabbitMQ的用户帐户这是在全新安装时自动创建的并具有所有权限。然而,this account is restricted to connections from localhost
only的目的是:由于其无限的权限,这将是一个安全问题的默认安装。这个帐户适合玩RabbitMQ,但不适合生产用途。
因此,在远程计算机上使用RabbitMQ时,它会拒绝与guest
帐户的连接,并且您会收到ProbableAuthenticationError
错误。
现在,你有两种解决方案:
的建议之一是创建另一个用户,给它适当的权限和使用它为您的应用程序。这在Access Control documentation中描述。
-
在
guest
帐户上禁用“仅限本地主机”保护。要做到这一点,你需要使用以下RabbitMQ的配置:[ {rabbit, [ {loopback_users, []} ]} ].
请阅读documentation of
loopback_users
(你将不得不在这个页面,搜索loopback_users
)。
嗨,创建用户后,代码中是否会有任何更改?或者代码会保持与我之前提到的相同? –
您需要将其更改为指定用户名和密码。我不知道Pika,所以请参阅Pika的文档以了解如何做到这一点。 –
添加您正在运行的代码。如果您在终端上看到还提及任何错误 –
您尝试过什么? –