RabbitMQ之消费者Consumer

本文通过实验测试了RabbitMQ在不同消费者数量下消息的处理速度,并对比了生产者与消费者的处理能力。结果显示,消费者数量增加并不总是线性提高处理速度。

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

注意: RabbitMQ版本是3.6.1。

用的是Spring的RabbitTemplate。

1.消费者(Consumer)

    如果RabbitMQ队列中堆积着数据,且没有生产者往队列中放入数据,那么,每个消费者线程从队列中拿数据的速度差不多是1000/s多一点,这里只是从队列中取数据而后丢弃,不对数据进行逻辑处理。

    当只有一个Consumer时,delive的速度达到了1300/s,有时会跳到1600/s。

    开启俩个消费者线程,速度差不多是2000/s,

    开启三个消费者线程呢,速度是否是3000/s,实际来看,大约2700/s,有时会调到3000/s左右。且测试中没有发现redelive的情况,即没有重发的情况。

    当消费者线程数量t大于2或者3时,RabbitMQ的delive速度基本小于t乘以1000的积。

上面的测试,发送的消息,消息报文体不是很大。

    在三个消费者的情况下,如果RabbitMQ同时处理着Producer的produce、消费者的consme,RabbitMQ的delive速度会下降到500/s或者800/s。

2.生产者(Producer)

    一个Producer,进行produce时,RabbitMQ的publish的速度达到2000/s,有时是4000/s,有时7000/s,有时都会跳到10000/s。感觉producer的速度快于consumer的速度。

    开启4个Producer,4个Consumer时,RabbitMQ的publish速度达到5000/s左右,但是delive的速度却只是达到2500/s左右,有时还比2500/s还少。

    当4个Producer的produce完成后,RabbitMQ的delive速度达到了4000/s左右,这时候才和其consumer线程个数对应(4个线程x1000个/s)。

 

    由上述可以看出,并不是Consumer数量越多,RabbitMQ上consume的速度同Consumer线程数量增长而呈线性增长,要分情况,要看RabbitMQ是否同时处理Producer的生产处理和Consumer的消费处理。不与线程数量增长呈线性增长在RabbitMQ的delive速度上最明显。

    上面只是我自己做实验,得出的,建议自己做实验验证,我的数据不一定非常准确。

转载于:https://my.oschina.net/u/2518341/blog/1831032

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值