如何将pika连接到rabbitMQ远程服务器?(python,pika)

Eri*_*mon 9 python rabbitmq pika

在我的本地机器上,我可以:

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
Run Code Online (Sandbox Code Playgroud)

对于这两个脚本(send.py和recv.py)来建立正确的通信,但是如何建立从12.23.45.67到132.45.23.14的通信呢?我知道ConnectionParameters()所采用的所有参数,但我不确定要传递给主机的内容或传递给客户端的内容.如果有人可以为主机脚本和客户端脚本提供示例,将不胜感激.

Hyp*_*ive 20

第一步是将另一个帐户添加到您的rabbitMQ服务器.要在Windows中执行此操作...

  1. 打开命令提示符窗口(windows key-> cmd-> enter)
  2. 导航到"C:\ Program Files\RabbitMQ Server\rabbitmq_server-3.6.2\sbin"目录(键入"cd\Program Files\RabbitMQ Server\rabbitmq_server-3.6.2\sbin"并按Enter键)
  3. 启用管理插件(键入"rabbitmq-plugins enable rabbitmq_management"并按Enter键)
  4. 打开一个broswer窗口到管理控制台并导航到管理部分(http:// localhost:15672 /#/ users with credentials"guest" - "guest")
  5. 添加新用户(例如"the_user",密码为"the_pass"
  6. 授予该用户对虚拟主机"/"的权限(单击用户名,然后单击"设置权限")

现在,如果您修改连接信息,就像在send.py的以下修改中所做的那样,您应该找到成功:

#!/usr/bin/env python
import pika

credentials = pika.PlainCredentials('the_user', 'the_pass')
parameters = pika.ConnectionParameters('132.45.23.14',
                                   5672,
                                   '/',
                                   credentials)

connection = pika.BlockingConnection(parameters)

channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='',
                  routing_key='hello',
                  body='Hello W0rld!')
print(" [x] Sent 'Hello World!'")
connection.close()
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


old*_*und 4

请参阅http://pika.readthedocs.org/en/latest/modules/parameters.html,其中表示'rabbit-server1'您应该输入 IP 的远程主机名。

请注意,该guest帐户只能通过本地主机连接https://www.rabbitmq.com/access-control.html