欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、

资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。

1、什么是Rabbitmq?

Rabbitmq是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

通俗点来讲:把Rabbitmq想象成一个邮局,当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收件人。在这个比喻中,Rabbitmq是邮政信箱,邮局和邮递员。

消息发送的示意图:

2、如何搭建一个Rabbitmq服务?

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 json
import pika
import 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条消息记录 

如下截图所示:

备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

 添加关注,一起共同成长吧。

Python之Rabbitmq发送消息相关推荐

  1. 简单Rabbitmq 发送消息和接收消息

    简单Rabbitmq 发送消息和接收消息 1 先在Rabbitmq配置文件中预先创建好交换器,队列,路由等信息. 2 创建生产者发送消息 @Autowiredprivate RabbitTemplat ...

  2. 给RABBITMQ发送消息时,设置请求头HEADER

    默认如下: content-type:text/plain 要求如下: content-type:application/json 解决方法如下(针对消息的生产者): 在MessagePostProc ...

  3. python clicknium 微信发送消息以及获取好友列表

    需求说明 给指定微信好友发消息 获取所有微信好友的微信号 环境准备 Windows 10 Visual Studio Code 1.69.2 Clicknium 0.1.2 Python 3.10.5 ...

  4. python给窗口发送消息_python win32api win32gui win32con 窗口句柄 发送消息 常用方法 键盘输入...

    import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=None ...

  5. python微信接口发送消息_Python 微信公众号发送消息

    #pip3 install requests importrequestsimportjsondefget_access_token():"""获取微信全局接口的凭证(默 ...

  6. python微信群发_更新新年祝福群发!小白转战Python微信定时发送消息给群或是个人!...

    本帖最后由 新手小白学编程 于 2020-1-24 21:07 编辑 {:301_998:} 过年了发点祝福短信发现人太多了,老代码改一改直接定时群发走起! [Python] 纯文本查看 复制代码im ...

  7. rabbitmq 发送消息格式注意

    在rabbitmq的网页版中,有publish ,用了发送. delivery_mode: 2 headers: content_type: text/plain content_type: text ...

  8. python发送消息到微信_通过python登录微信发送消息

    通过扫描二维码登录后发送信息,主要应用到了wxpy库,具体的看代码 from threading import Timer from wxpy import * import requests # # ...

  9. 给RabbitMQ发送消息时,设置请求头Header。

    消费者的请求头 生产者设置请求头 由于消费者那里,@Payload是接受的消息体,使用了@Header注解,需要请求头,生产者这边就要设置请求头,然后rabbitTemplate再调用convertA ...

最新文章

  1. [转]VSTO Office二次开发RibbonX代码结构
  2. Jquery_如何扩展方法
  3. fluentd mysql_使用Fluentd + MongoDB构建实时日志收集系统
  4. android shape 圆角百分比,Android shape显示圆角问题
  5. Centos7升级最新git
  6. 以我的视角看java编程世界
  7. 源代码 到 可执行程序的过程
  8. json转换成dart类 JSON to Dart
  9. Sublime Text 3常用插件安装(持续更新)
  10. 模拟小型电子商务网站绘制ER图
  11. 新版qq虚拟摄像头颜色不正常_云答辩 | QQ群“视频通话”来了
  12. 单片机应用系统设计技术——多功能出租车计费器
  13. android文件浏览器,安卓最强大的文件浏览器:ES文件浏览器
  14. Python实现决策树2(CART分类树及CART回归树)
  15. 沈阳艺术设计培训就业班 (学制一年)
  16. ajax实现微博点赞功能
  17. 文章如何在paperpaper查重
  18. 家用电风扇的控制电路设计(multisim源文件+设计说明书)
  19. bulk插入 es_Elasticsearch 使用bulk批量导入数据
  20. 【MDC智能驾驶开发者课程】1.华为MDC总体介绍

热门文章

  1. Google Calendar 跨平台同步方案(随时同步手机与电脑的日程安排)
  2. IE 兼容性问题记录
  3. 《JavaScript高级语言设计》(第三版)学习笔记(1)
  4. Openresrt最佳案例
  5. 单片机学习笔记 —— 8位数码管动态扫描
  6. JAVA技术栈学习路线整理【java后端开发应聘向】
  7. 宇视NVR 宇视录像机RTSP规则接入LiveNVR实现Web H5无插件直播和录像
  8. Linux Debian: 命令行连接 wifi 配置,解决在DELL戴尔和Thinkpad联想上Wicd找不到无线网问题 (用 ifup 或 nmcli )
  9. MATLAB--数学建模作图大全及代码说明
  10. 墨卡托坐标以及 墨卡托坐标转经纬度