RabbitMQ关于吞吐量,延迟和带宽的一些理论

本文深入探讨了RabbitMQ在处理消息传递时的吞吐量、延迟及其对带宽的影响。通过实例分析,揭示了如何优化配置以提升性能,并讨论了不同场景下性能优化策略。
摘要由CSDN通过智能技术生成



    该文阅读自RabbitMQ官方网站,分享好文给大家

    你在Rabbit有一个队列,然后一些消费者从这个队列中消费。如果你根本没有设置QoS(basic.qos),那么Rabbit会把所有的队列消息都按照网络和客户端允许的速度推送给客户端。消费者将会飞速增加它们的内存占用,因为它们将所有消息都缓存在自己的RAM中。如果您询问Rabbit,队列可能会显示为空,但会有大量在客户端中,正准备由客户端应用程序处理的消息未被确认。如果您添加新的消费者,则队列中不会有消息发送给新的消费者。即使有其他消费者可用于更快地处理这样的消息,它们也只是在现有的客户端缓存,并且可能在那里很长一段时间。这是相当次优的。

    因此,默认的QoS预取设置为客户提供了无限的缓冲区,这可能导致不良的行为和性能。但是,怎样的QoS预取缓冲区大小才是您应该设置的?设置的目的是让消费者保持工作饱和状态,同时尽量减少客户端的缓冲区大小,以便更多的消息留在Rabbit的队列中,来可供新消费者使用,或在消费者空闲时发送给消费者。

     比方说Rabbit从这个队列中拿出一条消息需要50ms,把它放到网络上,然后到达消费者。客户端处理消息需要4ms。一旦消费者处理了消息,它就会发送一个ACK给Rabbit,这个Rabbit需要进一步发送50ms的信息给Rabbit进行处理。所以我们总共有104ms的往返时间。如果我们有1个消息的QoS预取设置,那么在这个往返行程完成之后,Rabbit不会发送下一个消息。因此,客户端每104ms只有4ms,或3.8%的时间忙碌,而我们希望百分之百的时间都在忙碌中。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值