我在3台不同的电脑上有3个客户端。
客户端A正在运行RabbitMQ服务器。
客户B是制作人。
客户C是消费者。
我已经浏览了RabbitMQ网站上的教程(在Python中),我认为将它们从localhost
更改为通过网络工作只需要在行中输入IP:
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
他们的导游甚至说过
如果我们想要连接到不同机器上的代理,我们只需在此处指定其名称或IP地址。
那么我做错了什么以及如何让客户通过网络与服务器通信?
编辑:为了澄清 - 我正在使用rabbitmq-server
命令运行服务器。
客户使用上述行连接到代理。
答案 0 :(得分:0)
默认情况下,它会尝试使用guest作为用户标识和密码进行连接,并且默认情况下guest虚拟机无法在远程计算机上运行,您需要创建新用户并在连接中使用这些凭据 例如
credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters('serverip', credentials=credentials)
或修改来宾用户以允许其从远程计算机进行连接。前者可能是更好的选择,后者选项的方向可以在这里找到。
答案 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')