首页 > 其他分享 >RabbitMQ + JMeter组合,优化你的中间件处理方式!

RabbitMQ + JMeter组合,优化你的中间件处理方式!

时间:2024-07-12 20:18:56浏览次数:16  
标签:Jmeter AMQP 队列 中间件 RabbitMQ 交换机 JMeter Consumer

 

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控制台看到消息发送和接受的情况。

 

 

 

标签:Jmeter,AMQP,队列,中间件,RabbitMQ,交换机,JMeter,Consumer
From: https://www.cnblogs.com/zhuuque23/p/18299323

相关文章

  • .NET/C#、Netcore、数据库、Redis 、RabbitMQ&kafka、Docker ⾯试题汇总系列目录
    .NET/C#⾯试题汇总系列.NET/C#⾯试题汇总系列:ASP.NET常见面试题001.NET/C#⾯试题汇总系列:ASP.NET常见面试题002.NET/C#⾯试题汇总系列:ASP.NET常见面试题003.NET/C#⾯试题汇总系列:基础语法.NET/C#⾯试题汇总系列:ASP.NETMVC.NET/C#⾯试题汇总系列:多线程.NET/C#⾯......
  • C#面:简述什么是中间件(Middleware)?
    中间件是组装到应⽤程序管道中以处理请求和响应的软件。每个组件:选择是否将请求传递给管道中的下⼀个组件。可以在调⽤管道中的下⼀个组件之前和之后执⾏⼯作。请求委托(Requestdelegates)⽤于构建请求管道,处理每个HTTP请求。请求委托使⽤Run,Map和Use扩展⽅法进⾏配置。单......
  • php实现中间件功能
    <?php//框架核心应用层$application=function($name){echo"thisisa{$name}application\n";};//前置校验中间件$auth=function($handler){returnfunction($name)use($handler){echo"{$name}needaauthmiddleware\n"......
  • 利用SpringBoot+rabbitmq 实现邮件异步发送,保证100%投递成功
    在之前的文章中,我们详细介绍了SpringBoot整合mail实现各类邮件的自动推送服务。但是这类服务通常不稳定,当出现网络异常的时候,会导致邮件推送失败。本篇文章将介绍另一种高可靠的服务架构,实现邮件100%被投递成功。类似的短信自动发送等服务也大体相同。一、先来一张流程图......
  • 记一次springboot整合rabbitMQ的list序列化问题
    问题:平时传一个类的时候都会继承Serializable实现正确传输,这次我把list<Object>直接丢成了message,导致rabbitMQ不能序列化对象。报错org.springframework.amqp.rabbit.support.ListenerExecutionFailedException:Failedtoconvertmessage下面的整合步骤提供了解决方案:在发......
  • 22、Django-中间件-Middleware
    1、中间件是Django请求/响应处理的钩子框架、他是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出2、中间件以类的形式体现3、每个中间件组件负责做一些特定的功能、例如:Django包含一个中间件组件AuthentucationMiddleware、它使用会话将用户与请求关联起来......
  • 生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授
    web安全的基础知识基本定义Web安全,也称为网络安全或在线安全,是指保护网站、网页和Web服务免受各种威胁和攻击的技术和实践。这些威胁可能来自恶意软件、网络攻击、数据泄露、身份盗窃、服务中断等。Web安全的目标是确保Web应用程序和用户数据的安全、完整和可用性。一般流程......
  • jmeter自定义函数开发—Web3钱包生成工具
    之前使用Jmeter进行接口测试时,有生成钱包地址的需求,于是有时间就简单写了个自定义函数环境说明JDK1.8.0,Jmeter5.4.3,maven构建工具实现代码新建一个简单的maven项目即可,以下是pom.xml配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org......
  • jmeter分布式no-gui 测试报告
    1、远程测试https://jmeter.apache.org/usermanual/remote-test.html 2、 3、进行分布式压测是,服务器需要先启动jmeter-sever,启动jmeter-sever建议加上nobup,后开运行,停止服务时,先停master,在停slave,不然可能有问题。linux上具体的压测命令如下:只有一台服务时,若堡垒机可......
  • SpringBoot集成Rabbitmq快速启动示例
    RabbitMQ六种模式示例源码:ghdefe/rabbitmq-demo此项目分别演示六种模式:简单模式、工作模式、发布/订阅模式、路由模式、主题模式、RPC模式简单模式:生产者直接发送消息到队列、消费者直接消费队列、不经过交换机工作模式:与简单模式一致,只是变成多个消费者消费同一......