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

时间:2014-08-25 21:23:22

标签: python rabbitmq amqp

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

客户端A正在运行RabbitMQ服务器。

客户B是制作人。

客户C是消费者。

我已经浏览了RabbitMQ网站上的教程(在Python中),我认为将它们从localhost更改为通过网络工作只需要在行中输入IP:

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))

他们的导游甚至说过

  

如果我们想要连接到不同机器上的代理,我们只需在此处指定其名称或IP地址。

那么我做错了什么以及如何让客户通过网络与服务器通信?

编辑:为了澄清 - 我正在使用rabbitmq-server命令运行服务器。 客户使用上述行连接到代理。

2 个答案:

答案 0 :(得分:0)

默认情况下,它会尝试使用guest作为用户标识和密码进行连接,并且默认情况下guest虚拟机无法在远程计算机上运行,​​您需要创建新用户并在连接中使用这些凭据 例如

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

或修改来宾用户以允许其从远程计算机进行连接。前者可能是更好的选择,后者选项的方向可以在这里找到。

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

答案 1 :(得分:0)

你可以这样做:

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

如果要连接到不同计算机上的代理,请将上面的“localhost”更改为该计算机的名称或IP地址: 例如,在客户B上:

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