RabbitMQ队列  

rabbitMQ是消息队列;想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互)、进程queue(父进程与子进程进行交互或者同属于同一父进程下的多个子进程进行交互);如果两个独立的程序,那么之间是不能通过queue进行交互的,这时候我们就需要一个中间代理即rabbitMQ

消息队列: 

  • RabbitMQ
  • ZeroMQ
  • ActiveMQ
  • ...........
 

一. 安装

1.1 安装: sudo apt-get install rabbitmq-server 

1.2 启动rabbitmq web服务:

sudo invoke-rc.d rabbitmq-server stop
sudo invoke-rc.d rabbitmq-server start
启动web管理:sudo rabbitmq-plugins enable rabbitmq_management

1.3 远程访问rabbitmq,自己增加一个用户,步骤如下:

  •  创建一个admin用户:sudo rabbitmqctl add_user admin 123123
  • 设置该用户为administrator角色:sudo rabbitmqctl set_user_tags admin administrator
  • 设置权限:sudo  rabbitmqctl  set_permissions  -p  '/'  admin '.' '.' '.'
  • 重启rabbitmq服务:sudo service rabbitmq-server restart

之后就能用admin用户远程连接rabbitmq server了。

2. 安装python rabbitMQ modul:

  • 管理员打开cmd,切换到python的安装路径,进入到Scripts目录下(如:C:\Users\Administrator\AppData\Local\Programs\Python\Python35\Scripts);
  • 执行以下命令:pip install pika
  • 校验是否安装成功:进入到python命令行模式,输入import pika,无报错代表成功;

二. 代码实现

1. 实现最简单的队列通信

 

produce

 1 import pika
 2 connection = pika.BlockingConnection(pika.ConnectionParameters("192.168.244.130",15672))
 3 channel = connection.channel()
 4 #声明queue
 5 channel.queue_declare(queue='hello')
 6 channel.basic_publish(exchange="",
 7                       routing_key='hello',
 8                       body = 'Hello World!')
 9 print("[x] Sent 'Hello World!")
10 connection.close()

View Code