
点击上方蓝字关注咱们python
1mysql
什么是Rabbitmq?sql
Rabbitmq是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。docker
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通讯方法。应用程序经过读写出入队列的消息(针对应用程序的数据)来通讯,而无需专用链接来连接它们。消 息传递指的是程序之间经过在消息中发送数据进行通讯,而不是经过直接调用彼此来通讯,直接调用一般是用于诸如远程过程调用的技术。排队指的是应用程序经过队列来通讯。队列的使用除去了接收和发送应用程序同时执行的要求。数据库
通俗点来说:把Rabbitmq想象成一个邮局,当你把你想要发布的邮件放在邮箱中时,你能够肯定邮差先生最终将邮件发送给你的收件人。在这个比喻中,Rabbitmq是邮政信箱,邮局和邮递员。json
消息发送的示意图:浏览器
2微信
如何搭建一个Rabbitmq服务? app
step1:检索rabbitmq 镜像
docker search rabbitmq编辑器
step2:下载rabbitmq 镜像
docker pull rabbitmq:management
step3: 启动rabbitmq 容器
docker run -d -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 rabbitmq:management
step4: 登陆浏览器查看mq服务是否正常
3
建立一个虚拟主机
建立一个虚拟主机( virtual hosts,系统默认会建立一个/) 而且给guest 帐号赋上权限(此步骤可省略)
若是须要手动建立的话,须要单首创建而且赋权限给guest帐号。
4
Rabbitmq 发消息简单模式
step1:获取Rabbitmq服务的链接
step2:建立一个信道
step3:声明一个队列
step4:向列表存放消息
step5:关闭链接
具体代码以下:
import jsonimport pikaimport datetime
#生成消息入口处def get_message(): for i in range(10): #生成10条消息 message=json.dumps({'id': "10000%s" % i, "amount": 100 * i,"name":"tony","createtime":str(datetime.datetime.now())}) producter(message)
#消息生产者 def producter(message):#消息生产者 # 获取与rabbitmq 服务的链接,虚拟队列须要指定参数 virtual_host,若是是默认的能够不填(默认为/),也能够本身建立一个 connection = pika.BlockingConnection(pika.ConnectionParameters(host='127.0.0.1', port=5672,credentials=pika.PlainCredentials('guest', 'guest'))) #建立一个 AMQP 信道(Channel),建造一个大邮箱,隶属于这家邮局的邮箱 channel = connection.channel() # 声明消息队列tester,消息将在这个队列传递,如不存在,则建立 channel.queue_declare(queue='tester') # 向队列插入数值 routing_key的队列名为tester,body 就是放入的消息内容,exchange指定消息在哪一个队列传递,这里是空的exchange但仍然可以发送消息到队列中,由于咱们使用的是咱们定义的空字符串“”exchange(默认的exchange) channel.basic_publish(exchange='', routing_key='tester', body=message) # 关闭链接 connection.close()
if __name__=="__main__": get_message()#程序执行入口
5
检查mq中tester队列中是否产生了10条消息记录
以下截图所示:
友情提示:“无量测试之道”原创著做,欢迎关注交流,禁止第三方不显示文章来源时转载。更多原创文章请扫码关注查看,合做请联系:loadkernel@126.com。
QQ技术交流群:41564936


若是你以为文章不错的话,分享、收藏,在看,关注、打赏将会是对个人最大支持,也是我持续更新的最大动力。
本文分享自微信公众号 - 无量测试之道(gh_858a1aa25a6d)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。