Pika 无法使用来自远程 IP 地址的 RabbitMQ
Pika cannot consume RabbitMQ from remote IP address
我正在使用 Python 和 pika,因为我想使用 RabbitMQ 从一个服务器向另一个服务器发送数据。
我按照以下教程创建了消费者和生产者:
https://www.rabbitmq.com/tutorials/tutorial-one-python.html
在同一台机器上,我可以将消息发送到本地主机并从本地主机读取,它会工作。
但是从一个服务器到另一个它会报错如ConnectionClosed, ProbableAccessDeniedError, ProbableAuthenticationError
我尝试创建具有管理员访问权限的凭据,而不是使用默认的 guest/guest 凭据。我还将超时从 0.25 增加到 2sec
credentials = pika.credentials.PlainCredentials(server['username'], server['password'], erase_on_connect=False)
connection = pika.BlockingConnection(pika.ConnectionParameters(host=server['ip'], credentials=credentials, socket_timeout=2))
我什至尝试从同一台机器发送和接收,但我没有指定 'localhost' 而是提供机器 IP 地址,这没有用
我发现问题出在托管制作人的远程服务器上。
我创建的用户是管理员用户,但缺少权限。
基本上这是解决方案(这是我最初忘记的第三行):
sudo rabbitmqctl add_user alex password
sudo rabbitmqctl set_user_tags alex administrator
sudo rabbitmqctl set_permissions -p / alex ".*" ".*" ".*"
我正在使用 Python 和 pika,因为我想使用 RabbitMQ 从一个服务器向另一个服务器发送数据。
我按照以下教程创建了消费者和生产者: https://www.rabbitmq.com/tutorials/tutorial-one-python.html
在同一台机器上,我可以将消息发送到本地主机并从本地主机读取,它会工作。
但是从一个服务器到另一个它会报错如ConnectionClosed, ProbableAccessDeniedError, ProbableAuthenticationError
我尝试创建具有管理员访问权限的凭据,而不是使用默认的 guest/guest 凭据。我还将超时从 0.25 增加到 2sec
credentials = pika.credentials.PlainCredentials(server['username'], server['password'], erase_on_connect=False)
connection = pika.BlockingConnection(pika.ConnectionParameters(host=server['ip'], credentials=credentials, socket_timeout=2))
我什至尝试从同一台机器发送和接收,但我没有指定 'localhost' 而是提供机器 IP 地址,这没有用
我发现问题出在托管制作人的远程服务器上。
我创建的用户是管理员用户,但缺少权限。
基本上这是解决方案(这是我最初忘记的第三行):
sudo rabbitmqctl add_user alex password
sudo rabbitmqctl set_user_tags alex administrator
sudo rabbitmqctl set_permissions -p / alex ".*" ".*" ".*"