首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ之消费者Consumer 原

RabbitMQ之消费者Consumer 原

作者头像
克虏伯
发布2019-04-15 14:20:40
2.7K0
发布2019-04-15 14:20:40
举报

注意: 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速度上最明显。

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

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/06/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.消费者(Consumer)
  • 2.生产者(Producer)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档