在我们的项目开发过程中,我们有时会有时候有两个或者多个程序交互的情况,当然就会使用到这里的消息队列来实现。现在比较火的就是RabbitMQ,还有一些ZeroMQ ,ActiveMQ 等等,著名的openstack默认用的RabbitMQ来实现的。

python中我们使用pika模块来操作消息队列,当然Celery也是python中比较火的做分布式消息队列的模块。

1,RabbitMQ的安装

参考链接https://www.cnblogs.com/zzqit/p/10158923.html

2,RAbbitMQ常用命令

rabbitmqctl list_queues          # 查看所有队列信息

rabbitmqctl list_exchanges       # 查看所有交换器

rabbitmqctl list_bindings        # 查看所有    

rabbitmqctl reset                # 清除所有队列

rabbitmqctl status               # 查看运行信息

rabbitmqctl start_app            # 启动应用

rabbitmqctl stop_app             # 关闭应用

3,常用方法

exchange_delete          # 删除交换机 
queue_delete             # 删除队列 
queue_purge              # 清除指定队列的所有的消息 
queue_unbind             # 队列和交换机解除绑定 
basic.cancel             # 清除消费者

4,最简单的发收事例

发送端(producer)

 1 import pika
 2 
 3 # 建立一个实例
 4 connection = pika.BlockingConnection(
 5     pika.ConnectionParameters('localhost')  # 默认端口5672,可不写
 6     )
 7 
 8 # 声明一个管道,在管道里发消息
 9 channel = connection.channel()
10 
11 # 在管道里声明queue名字为test
12 channel.queue_declare(queue='test')
13 
14 # 指明发送队列的名字跟内容
15 channel.basic_publish(exchange='',
16                       routing_key='test',  # queue名字
17                       body='Hello World!'  # 消息内容
18     ) 
19 
20 print(" [x] Sent 'Hello World!'")
21 
22 connection.close()  # 队列关闭 
View Code

相关文章: