Python下使用pika简单实现RabbitMQ通信

xiaoxiao2021-02-28  99

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。

现在介绍一下基本的RabbitMQ的通信过程:

RabbitMQ基本的通信模型是这样的,它类似于C-S通信模型,它包含一个producer (生产者),queue(消息队列)和一个consumer(消费者),生产者发送的消息只会存储在中间的消息队列中:

                                                 

下面是使用ubu环境,使用python实现简易的消息通信,需要安装rabbitmq-server和pika(使用的第三方控件):

1.RabbitMQ的安装直接使用apt-get install rabbitmq-server;

2.pika可以使用pip install pika,我这样没有安装成功,我是下载pika的源码包进行安装的,地址是:https://pypi.python.org/pypi/pika/#downloads,解压后使用python setup.py install 安装即可

下面是一个简易的消息通信的代码:

client.py

#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) #创建一个连接 channel = connection.channel() #创建通道 channel.queue_declare(queue='hello') #把消息队列的名字为hello channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') #设置routing_key(消息队列的名称)和body(发送的内容) print(" [x] Sent 'Hello World!'") connection.close() #关闭连接 server.py

#!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) #创建一个连接 channel = connection.channel() #建立通道 channel.queue_declare(queue='hello') 把消费者和queue绑定起来,生产者和queue的也是hello def callback(ch, method, properties, body): #回调函数get消息体 print(" [x] Received %r" % body) channel.basic_consume(callback, queue='hello', no_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming() #创建死循环,监听消息队列,可使用CTRL+C结束监听

最后执行python srver.py 启动服务端监听消息队列,执行python client.py启动客户端向消息队列发送消息

更多内容请查询RabbitMQ官网:http://www.rabbitmq.com/

转载请注明原文地址: https://www.6miu.com/read-23648.html

最新回复(0)