转用Jmeter测试RabbitMQ

本文详细介绍了如何使用JMeter插件进行RabbitMQ的集成测试,包括下载和安装AMQP插件、配置JMeter环境、设置AMQPPublisher和AMQPConsumer参数,以及理解不同的交换机类型和队列特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://blog.youkuaiyun.com/luozhuwang/article/details/62044872

1.下载AMQP插件

github上面有源码,可以通过ant+ivy在本地进行打包(下载IDEA实践成功)

https://github.com/jlavallee/JMeter-Rabbit-AMQP(github 上面支持中文有问题)

已经解决好乱码的插件:插件下载

2.将下载的插件放到Jmeter--lib/ext目录,然后启动程序,可以看到"AMQP Publisher" 和 "AMQP Consumer" 2个选项

3.AMQP Publisher/Consumer  请求 介绍

Exchange(交换机):如果此处不填写,使用默认名称--(AMQP default)

Exchange Type:分别是direct(单播),fanout(广播),topic(组播),headers,每种类型路由的策略不同,公司用direct 和 fanout 这2种路由居多

direct:如果一个队列绑定到该交换机上,并且当前要求路由键为  X  ,只有路由键是  X  的消息才会被这个队列转发。默认交换机便是该类型。
fanout:一个发送到交换机上的消息都会被转发到与该交换机绑定的所有队列上。  Fanout  交换机发消息是最快的。

topic:将路由键和某模式进行匹配,可以理解成模糊处理(不是特别明白)

Durable(持久化):具有这个标志的队列和交换机会在重启之后重新建立,它不表示说在队列当中的消息会在重启后恢复

Redeclare(重定义):此功能不是特别清楚

Message TTL(Time-To-Live Extensions):消息过期时间,时间为毫秒

Exclusive(排他性队列):创建一个只有自己可见的队列,即不允许其它用户访问,在没有消费者来消费的时候,他就会自动的删除

Expire(超期时间):该值必须为正数(与消息 TTL 不同,该值不可以为 0),所以如果该参数设置为 1000 ,则表示该 queue 如果在 1 秒钟之内未被使用则会被删除。 

Auto delete:当没有队列或者其他exchange绑定到此exchange的时候,该exchange被销毁

Prefect Count:消费者自身处理能力有限,从rabbitmq获取一定数量的消息后,希望rabbitmq不再将队列中的消息推送过来,当对消息处理完后(即对消息进行了ack,并且有能力处理更多的消息)再接收来自队列的消息。在这种场景下,我们可以通过设置basic.qos信令中的prefetch_count来达到这种效果(一般不用设置)

通过Jmeter实现请求:

参考用例:https://github.com/jlavallee/JMeter-Rabbit-AMQP/blob/master/examples/RPC_Load_Test.jmx

备注:如果Reply-to Queue为空,则"AMQP Consumer--Queue"为空,不能得到返回数据

参考文献:

http://www.tuicool.com/articles/6BRzMji

http://www.bbsmax.com/A/lamd0MWzge/

--------------------- 本文来自 小李广 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/luozhuwang/article/details/62044872?utm_source=copy 

转载于:https://www.cnblogs.com/saryli/p/9707536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值