如何通过网络连接到Rabbit-MQ服务器?
我有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用户的详细步骤,可以在这里找到。