RabbitMQ队列消费性能问题

最近公司的一个项目用到RabbitMQ作消息广播,使用过程中配合了一个开发库MassTransit。有一个应用A会不断向队列Q发送消息(>1500msg/sec),另一个应用B会从队列Q中接受消息并处理。
现在碰到的问题是,当应用A发送消息,应用B获取消息这两个过程同时进行时,应用B从队列获取消息的速度最快不超过350msg/sec;但是当把应用A关闭不发送消息,应用B从队列中已经堆积的消息中获取消息,最快可以超过5000msg/sec。
大家有没有碰到过这样的问题,有什么办法可以解决这个问题。因为我们系统的每秒负荷很高,希望能够接收消息越快越好,现在好像同时读写对RabbitMQ的性能产生了影响,请大家帮忙指点。谢谢!

阅读 10.5k
4 个回答

看看各种I/O吧 是不是读/写到瓶颈了

以前遇到过,主要是IO忙.原因就比较多了.比如消息的大小,其他服务的影响.我们当时的情况是:其他服务频繁进行大规模的socket短链接操作,导致FD和IO都比较忙碌.

新手上路,请多包涵

问题解决了吗?

官方的性能测试
https://www.rabbitmq.com/blog...

测试过程里面,写入会对读取速度有影响;
但是消费者350/s的吞吐,有点太低了,可能是消费者的逻辑比较复杂,可以单独写个测试例子来确认下是rabbitmq的问题还是消费者的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进