服务器ip :192.168.0.191 系统:centos7.9

# for RabbitMQ 3.9, the latest series
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

python 产生 消费 demo

app.py

启动一个简易的flask应用

from flask import Flask
from flask_restful import Api
from producer import ToMq

app = Flask(__name__)
api = Api(app)
api.add_resource(ToMq, "/tomq/<string:s>")

if __name__ == '__main__':
app.run(debug=True)

producer.py

生产者实例代码

import pika
from flask_restful import Resource

class ToMq(Resource):
def opt(self, s):
# ############################## 生产者 ##############################
credentials = pika.PlainCredentials(username="admin", password="admin") # 连接凭证 如果不指定 则默认使用 guest guest
#
connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.0.191',
virtual_host='/',
credentials=credentials))
channel = connection.channel()
channel.queue_declare(queue='abc') # 如果队列没有创建,就创建这个队列
channel.basic_publish(exchange='',
routing_key='abc', # 指定队列的关键字为,这里是队列的名字
body=s) # 往队列里发的消息内容
msg = "Message '{}' has been sent to mq".format(s)
connection.close()
return msg

def post(self, s):
m = self.opt(s)
return m

def get(self, s):
m = self.post(s)
return m

consumer.py

消费者示例代码

import pika

# ########################### 消费者 ###########################
credentials = pika.PlainCredentials(username="admin", password="admin") # 连接凭证 如果不指定 则默认使用 guest
#
connection = pika.BlockingConnection(pika.ConnectionParameters(host='192.168.0.191',
virtual_host='/',
credentials=credentials))
channel = connection.channel()

channel.queue_declare(queue='abc') # 如果队列没有创建,就创建这个队列


def callback(ch, method, propertities,body):
print(" [x] Received %r" % body)

channel.basic_consume("abc", callback, auto_ack=True)

print(' [*] Waiting for message. To exit press CTRL+C')
channel.start_consuming()

使用方式:

启动消费者脚本constumer.py

python3 constumer.py

使用python调用rabbitmq实例代码_rabbitMQ

在另一终端启动flask应用(消费者脚本终端不要关闭)

python3 app.py

使用python调用rabbitmq实例代码_rabbitMQ_02

浏览器访问

http://127.0.0.1:5000/tomq/xxxxx 其中xxxx为发送给mq的消息

使用python调用rabbitmq实例代码_rabbitMQ_03

观察consumer终端会得到以下信息

使用python调用rabbitmq实例代码_python_04