当前位置: 首页 > news >正文

RabbitMQ和JMeter,一个完美的组合!优化你的中间件处理方式

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件,它是基于Erlang语言编写的,并发能力强,性能好,是目前主流的消息队列中间件之一。

RabbitMQ的安装可参照官网( https://www.rabbitmq.com/),安装完以后启动管理服务,RabbitMQ提供强大的管理功能。

在使用Jmeter处理RabbitMQ以前,首先需要了解AMQP协议关于队列的规定,RabbitMQ支持下列几种队列:

  • Basic queue 简单队列:
  • 一个Producer对一个Consumer,功能类似于ActiveMQ的P2P模式
  • Work queue 轮询分发 :
  • 一个Producer对应多个 Consumer,可以采用轮询或其他算法来设置Consumer进行消费,Producer的消息会被其中某一个Consumer消费
  • Fanout Exchange:
  • 生产者不将消息发送到消息队列,而是发送到交换机,每个队列绑定到交换机,生产者发送的消息经过交换机到达队列,实现一个消息被多个消费者消费的目的,功能类似于ActiveMQ的Topic/Subscriber模式
  • Direct Exchange:
  • 路由模式,根据key进行交换机和队列绑定
  • Topic Exchange:
  • 通配符模式,一个消费者队列可以有多个消费者实例,其中只有1个实例会接收到消息

较为常用的有Direct Exchange和FanoutMode,本文以DirectExchange为例说明如何使用Jmeter处理RabbitMQ消息中间件。在使用Jmeter发送和消费RabbitMQ消息以前,我们首先通过控制台在RabbitMQ里新建一个Direct Exchange的交换机,并通过Key绑定相应队列

01、安装JmeterRabbitMQ插件

Jmeter没有内置对RabbitMQ的支持,在使用Jmeter发送和接受RabbitMQ以前,需要首先下载相应插件包编译后放置到Jmeter的lib当中( https://github.com/jlavallee/JMeter-Rabbit-AMQP )安装完插件包以后,新建Jmeter脚本,可以在脚本中看到AMQP Publisher和AMQP Consumer取样器,分别对应AMQP协议的消息发送者和消息接受者。

02、Jmeter发送RabbitMQ消息

新建AMQP Publisher,因为本示例采用的是Direct Fanout模式,填写完RabbitMQ连接信息以后,在Publisher里需要指定对应的消费者的绑定Key以及交换机

03、Jmeter接受RabbitMQ消息

新建AMQP Consumer,此处指定RabbitMQ连接信息,交换机名称,类型以及队列名即可(需要和生产者匹配)

运行脚本,查看结果数,此时也可以通过RabbitMQ控制台看到消息发送和接受的情况。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


     【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、软件测试全套资料

十、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!     

相关文章:

RabbitMQ和JMeter,一个完美的组合!优化你的中间件处理方式

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件,它是基于Erlang语言编写的,并发能力强,性能好,是目前主流的消息队列中间件之一。 RabbitMQ的安装可参照官网( https://www.rabbitmq.c…...

WARNING: IPv4 forwarding is disabled. Networking will not work

当我在运行某条语句的时候 docker run -it -p 30001:22 --namecentos-ssh centos /bin/bash 提示 WARNING: IPv4 forwarding is disabled. Networking will not work. 解决: vim /usr/lib/sysctl.d/00-system.conf net.ipv4.ip_forward1 systemctl restart networ…...

SpringBoot复习:(40)@EnableConofigurationProperties注解的用法

一、配置文件: server.port9123 二、配置类: package cn.edu.tju.config;import com.mysql.fabric.Server; import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.context.properties.EnableConfigu…...

Live Market是如何做跨境客户服务的?哪些技术赋能?

在面对不同的海外市场和用户群体时,如何进行有效地出海营销是跨境商家面临的挑战。其中消费者服务管理和卖家保障尤其关键,如何做好客户服务管理?包括处理好客户投诉,提升消费者满意度是所有跨境商家和品牌独立站卖家非常重视的问题。 在数字化浪潮席卷之下&#…...

2023年7月京东洗衣机行业品牌销售排行榜(京东数据分析软件)

2023年上半年,洗衣机市场表现平淡,同环比来看出货量都有一定程度的下滑。7月份,洗衣机市场仍未改变这一下滑态势。 根据鲸参谋电商数据分析平台的相关数据显示,7月份,京东平台洗衣机的销量为109万,环比下降…...

【0214】postgres后端进程session退出,如何通过日志分析其会话信息

文章目录 1. postgres进程session退出2. 开启日志记录postgres进程会话状态3. postgres进程会话结束,记录日志的实现原理1. postgres进程session退出 默认情况下,新建一个postgres后端进程会话(session),或是postgres进程正常/异常退出时,日志中没有很明显的记录用于说明…...

Rust 重载运算符|复数结构的“加减乘除”四则运算

复数 基本概念 复数定义 由实数部分和虚数部分所组成的数,形如a+bi 。 其中a、b为实数,i 为“虚数单位”,i -1,即虚数单位的平方等于-1。 a、b分别叫做复数a+bi的实部和虚部。 当b0时,a&…...

Oracle删除表空间

1.检查表空间状态 SELECT tablespace_name, status FROM dba_tablespaces;备注:tablespace_name表示删除表空间的名称,status为表空间的状态。如果状态为ONLINE,表示表空间当前正在使用,不能被删除。 2.关闭表空间 ALTER TABLE…...

Mysql - 配置Mysql主从复制-keepalived高可用-读写分离集群

目录 高可用: 为什么需要高可用呢? 高可用的主要作用: keepalived是什么?它用在哪里? 什么是VRRP协议,它的作用是什么? 搭建一个基于keepalived的高可用Mysql主从复制读写分离集群 一、项…...

Qt QLineEdit输入时限制,采用正则表达式

QLineEdit 正则 序言使用方法正则表达式使用例子 序言 老是有人在群里问这个&#xff0c;所以我干脆写一篇方便予人查看&#xff0c;很简单的小功能。 使用方法 Qt5 #include <QRegExpValidator> //#include "qvalidator.h"ui->lineEdit->setValida…...

【CSS】文本效果

文本溢出、整字换行、换行规则以及书写模式 代码&#xff1a; <style> p.test1 {white-space: nowrap; width: 200px; border: 1px solid #000000;overflow: hidden;text-overflow: clip; }p.test2 {white-space: nowrap; width: 200px; border: 1px solid #000000;ove…...

Django快速上手,写一个简单的页面,快来看看吧~

还没有安装Django&#xff0c;以及不会创建Django项目的小伙伴&#xff0c;可以先看看博主这篇文章&#xff1a;http://t.csdn.cn/Ly7yM 目录 1、项目创建完成后&#xff0c;需要注意的点&#xff1a; 2、创建app 3、app的各个目录的作用 4、快速上手 4.1、注册app 4.2、U…...

【Express.js】数据库初始化

数据库初始化 在软件开发阶段和测试阶段&#xff0c;为了方便调试&#xff0c;我们通常会进行一系列的数据库初始化操作&#xff0c;比如重置数据表&#xff0c;插入记录等等&#xff0c;或者在部署阶段进行数据初始化的操作 根据前面章节介绍过的 knex.js 和 sequelize.js&…...

【数理知识】三维空间旋转矩阵的欧拉角表示法,四元数表示法,两者之间的转换,Matlab 代码实现

序号内容1【数理知识】自由度 degree of freedom 及自由度的计算方法2【数理知识】刚体 rigid body 及刚体的运动3【数理知识】刚体基本运动&#xff0c;平动&#xff0c;转动4【数理知识】向量数乘&#xff0c;内积&#xff0c;外积&#xff0c;matlab代码实现5【数理知识】最…...

【业务功能篇63】Springboot聊聊 过滤器和拦截器

过滤器的场景&#xff1a;过滤器通常用于对数据或资源进行筛选、修改或转换的场景。例如&#xff0c;在一个电子商务网站中&#xff0c;用户进行商品搜索时&#xff0c;你可以使用过滤器来过滤特定的商品类别、价格范围或其他条件&#xff0c;以便用户仅看到符合筛选条件的结果…...

提高学生学习效率的模拟考试系统

在如今竞争激烈的社会环境下&#xff0c;提高学生的学习效率显得尤为重要。为了帮助学生评估自己的学习水平并提供有针对性的学习建议&#xff0c;开发一款模拟考试系统是非常必要的。 一、学生信息录入 模拟考试系统首先需要学生信息录入功能。学生可以通过一个简单的表单填…...

解决QWebEngineView在linux下加载本地html失败的问题

通常我们使用QWebEngineView加载本地html文件时&#xff0c;是通过 void load(const QUrl &url) void setUrl(const QUrl &url) 两个函数&#xff0c;传入html的相对或绝对路径&#xff0c;进行加载。 而在linux(uos x86)下运行时&#xff0c;却发现加载失败&#xf…...

如何使用Redis实现内容推送功能

导读 在日常使用中&#xff0c;我们经常能看见内容推送功能。 常见的场景有&#xff0c;比如你在bilibili关注了某个up主&#xff0c;当up主发布视频后&#xff0c;就会推送到你的收件箱或者是动态中&#xff0c;让粉丝能够及时得知所关注的人发布了内容。 又比如朋友圈&…...

怎么对视频进行压缩?

怎么对视频进行压缩&#xff1f;视频压缩&#xff0c;我们都知道是将视频文件进行压缩变小的过程&#xff0c;是我们日常办公中较为常用的手段。现如今&#xff0c;在视频技术不断发展与创新的基础上&#xff0c;视频分辨率也在不断提高&#xff0c;进而导致文件占有量也非常大…...

redisson配置类---SpringBoot集成、redis单机和集群模式配置

1项目配置文件&#xff1a; 1.1&#xff1a;pom.xml <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.17.7</version></dependency> 1.2 application.yml配置…...

RMSNorm:LLM 里的归一化为什么换成了这个

本文基于昇腾CANN和昇腾NPU&#xff0c;围绕 ops-transformer 仓库的相关技术展开。 LayerNorm 在大模型里被 RMSNorm 替换了。LayerNorm 做了减均值再除方差&#xff0c;RMSNorm 只除均方根——去掉了减均值那一步。少一次 Reduce 操作&#xff0c;在量产推理里省掉 15-20% 的…...

原来湖南2026年的灯光设计趋势竟然是这样的?

原来湖南2026年的灯光设计趋势竟然是这样的&#xff1f;随着科技的不断进步和人们生活水平的提高&#xff0c;灯光设计在家居和商业空间中的重要性日益凸显。湖南作为中部地区的经济大省&#xff0c;其灯光设计趋势也备受关注。本文将深入探讨2026年湖南灯光设计的主要趋势&…...

Beyond Compare 5密钥生成器:从评估到期到永久授权的完整解决方案

Beyond Compare 5密钥生成器&#xff1a;从评估到期到永久授权的完整解决方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 你是否在使用Beyond Compare 5进行文件对比时&#xff0c;遇到了30…...

LLM-DSE框架:大语言模型优化硬件加速器设计

1. LLM-DSE框架概述&#xff1a;当大语言模型遇上硬件加速器设计在硬件加速器设计领域&#xff0c;高层次综合&#xff08;HLS&#xff09;技术通过将抽象层级从寄存器传输级&#xff08;RTL&#xff09;提升到C/C&#xff0c;显著降低了开发门槛。然而&#xff0c;HLS指令参数…...

【VibeCoding系列教程01】2026年最狠的职场外挂:我靠“说话“让AI替我加班,同事以为我开了挂

你们发现没有&#xff0c;现在这个世界越来越离谱了。前两天我朋友问我&#xff0c;说老哥&#xff0c;我想做个网站&#xff0c;得学多久&#xff1f;我说&#xff0c;搁以前&#xff0c;你得先学HTML、CSS、JavaScript&#xff0c;再学框架、学部署&#xff0c;顺利的话&…...

如何在Windows上让DualShock 3控制器重获新生?DsHidMini虚拟HID驱动技术解析

如何在Windows上让DualShock 3控制器重获新生&#xff1f;DsHidMini虚拟HID驱动技术解析 【免费下载链接】DsHidMini Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers 项目地址: https://gitcode.com/gh_mirrors/ds/DsHidMini 在Windows平台使用索…...

Gopher360:如何用游戏手柄轻松控制您的Windows电脑?免费开源控制器映射工具完整指南

Gopher360&#xff1a;如何用游戏手柄轻松控制您的Windows电脑&#xff1f;免费开源控制器映射工具完整指南 【免费下载链接】Gopher360 Gopher360 is a free zero-config app that instantly turns your Xbox 360, Xbox One, or even DualShock controller into a mouse and k…...

Yarn Spinner终极指南:10分钟学会编写专业游戏交互对话

Yarn Spinner终极指南&#xff1a;10分钟学会编写专业游戏交互对话 【免费下载链接】YarnSpinner The core compiler and engine-agnostic components for Yarn Spinner, the friendly dialogue tool. 项目地址: https://gitcode.com/gh_mirrors/ya/YarnSpinner Yarn Sp…...

STM32F103C8T6+TJA1042+UTA0403:一个CAN通讯新手踩过的所有坑(附完整接线图与代码)

STM32F103C8T6与TJA1042的CAN通讯实战&#xff1a;从零到通的完整避坑指南 当蓝色PCB上那颗STM32F103C8T6第一次通过CAN总线发出数据帧时&#xff0c;我的示波器上终于出现了规整的差分信号波形——这距离我首次焊接CAN收发器已经过去了整整三周。作为嵌入式开发的新手&#xf…...

Windows平台PDF处理终极方案:告别编译烦恼,三分钟快速部署

Windows平台PDF处理终极方案&#xff1a;告别编译烦恼&#xff0c;三分钟快速部署 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows上…...