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

时间:2015-01-06 18:44:51

标签: python rabbitmq pika

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

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

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

2 个答案:

答案 0 :(得分:16)

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

  1. 打开命令提示符窗口(windows key-> cmd->输入)
  2. 导航到“C:\ Program Files \ RabbitMQ Server \ rabbitmq_server-3.6.2 \ sbin”目录(键入“cd \ Program Files \ RabbitMQ Server \ rabbitmq_server-3.6.2 \ sbin”并按回车键)
  3. 启用管理插件(输入“rabbitmq-plugins enable rabbitmq_management”并按回车键)
  4. 打开管理控制台& amp;导航到管理部分(http://localhost:15672/#/users,凭据“guest” - “guest”)
  5. 添加新用户(例如“the_user”,密码为“the_pass”
  6. 授予该用户对虚拟主机“/”的权限(单击用户名,然后单击“设置权限”)
  7. 现在,如果您修改连接信息,就像在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()
    

    希望这有帮助

答案 1 :(得分:2)

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

请注意,guest帐户只能通过localhost https://www.rabbitmq.com/access-control.html

进行连接