如何通过网络连接到Rabbit-MQ服务器?

3 投票
2 回答
4705 浏览
提问于 2025-04-18 18:29

我有3个客户在3台不同的电脑上。

客户A在运行一个RabbitMQ服务器。

客户B是一个生产者。

客户C是一个消费者。

我看过RabbitMQ网站上的教程(用Python写的),我以为只要把代码里的localhost改成IP地址,就能让它们通过网络连接。

他们的指南里甚至说过:

如果我们想连接到另一台机器上的代理,只需要在这里指定它的名称或IP地址。

那么我到底哪里做错了呢?我该怎么让这些客户通过网络和服务器沟通呢?

补充说明:我用rabbitmq-server命令在运行服务器。客户是通过上面提到的代码连接到代理的。

2 个回答

0

你可以这样做:

credentials = pika.PlainCredentials('username','password')
parameters = pika.URLParameters('amqp://username:password@localhost:5672/%2F')
connection = pika.BlockingConnection(parameters)

如果你想连接到另一台机器上的代理(broker),只需要把上面代码中的“localhost”换成那台机器的名字或者IP地址就可以了。比如在客户端B上:

parameters = pika.URLParameters('amqp://username:password@(ip of client A):5672/%2F')
0

默认情况下,它会尝试用“guest”作为用户名和密码来连接。而且,默认情况下,guest用户无法从远程机器连接。你需要创建一个新用户,并在连接时使用这些新用户的凭据,比如:

credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters('serverip', credentials=credentials) 

或者你可以修改guest用户的设置,让它可以从远程机器连接。不过,创建新用户可能是更好的选择。关于如何修改guest用户的详细步骤,可以在这里找到。

http://blog.shippable.com/rabbitmq-on-docker-fix

撰写回答