RabbitMQ 测试方案及结果

RabbitMQ测试方案

Qos:举例说明:Qos=2如果消费者A 有2个消息没有回应,则MQ不会再往消费者A中发消息,直到收到消息确认后才会再次发送。

Ack:消息确认。

方案1:启动一个生产者,无消费者。

 

测试结果:每秒生产大约6250条消息,磁盘写入是6250/s

                     当消息的堆积量达到40W以上时,每秒进入队列的速率就会降到4500~5000/s之间

 

方案2:启动三个生产者,无消费者。


测试结果:每秒生产大约6500条消息,磁盘写入是6500/s

 

方案3:启动10个生产者,无消费者


测试结果:每秒生产大约7300条消息,磁盘写入是7300/s

 

方案4:启动20个生产者,无消费者


测试结果:生产9000qps/s ,启动30个生成者是8500,经过反复测试最终发现20~25个生产者效率最高。

 

方案5: 启动无生产者,1个消费者,Qos为0,默认ack接收到消息马上返回。



测试结果:每秒消费8000Qps

 

方案6:启动无生产者,1个消费者,Qos为1,默认应答接收到消息马上返回。


测试结果:每秒消费310Qps;


方案7:启动无生产者,1个消费者,Qos为1,默认不应答接收到消息马上返回



测试结果:每秒消费11500Qps;

 

方案8:启动无生产者,一个消费者,Qos为10,默认ack接收到消息马上返回。


 


方案9:启动1个生产者,1个消费者,Qos为10,默认Ack,接收到消息后马上返回。


测试结果:生成4000Qps/s 消费1000Qps/s

 

方案10:启动1个生成者,1个消费者,Qos为10,默认Ack,接收到消息休眠10ms


测试结果:生产4500Qps/s  消费10Qps/s

 

方案11:启动1个生产者,1个连接,10个消费者,Qos为100,默认Ack,接收到消息休眠10ms


测试结果:生产5000qps/s  消费500qps/s

这说明一味的增加channel开启consumer应该是有瓶颈的,随着consumer的增加,消费效率应该也不会有太大的增加,接着测试

 

方案12:启动一个生产者,1个连接,30个消费者,Qos为100,默认Ack,接收到消息休眠10ms


测试结果:生产4500qps/s  消费450qps/s

从结果来看,consumer增加了三倍,但是消费速率基本在1400左右,感觉要到瓶颈了.后面我尝试过consumer_size=50,也是这个值,直到consumer_size=17的时候就是500/s,再增加consumer也不会增加效率了.

从数据上来看感觉是一个连接里面channel有一个上限值,再多也处理不完了,那可以考虑尝试增加connection来试试是否能够增加消费能力

 

方案13:启动1个生产者,3个连接,每个连接里面创建17个消费者,Qos为100,默认Ack,接收到消息休眠10ms,用来模拟业务处理时间


测试结果:生产4320qps/s 消费1500qps/s

方案14:启动一个生产者,10个连接,每个连接里面创建17个消费者,Qos为100,默认Ack,接收到消息休眠10ms,用来模拟业务处理时间

 

总结

通过以上的测试,我们基本上得出以下几个结论:


1.生产者生产消息过快,无论是否有消费者,都会触发流控,不同的是流控强度随消费者个数加强.


2.一旦有消费者连接,就会对生产者的消息生产效率产生影响(在触发流控之后)


3.在每个连接里面在创建相应数量的consumer,可以增加消费能力,但是也是有上限的,我的     测试中上限是17


4.创建多个连接,并且每个每个连接里面consumer设置到上限数量,可以进一步增加消费能力


5.在消息堆积的情况下,消费者数量与生产者的生产效率成反比


6.在没有消息堆积的情况下,设置得当的话,基本上可以做到生产与消费同步(测试的最大值为13000+/s,加大连接数可能还会提高)

 

RabbitMQ是一个消息代理。它通过发送消息和接收消息来实现消息传递的功能。在介绍RabbitMQ的基础之前,我们需要了解一些常用的管理工具,如rabbitmqctl和rabbitmq-plugins,它们用于管理RabbitMQ服务器。 在开始使用RabbitMQ之前,我们可以通过一个简单的"helloworld"例子来了解它的基本使用方法。我们可以发送一个消息"helloworld"并接收它。同时,这个例子还会涉及到RabbitMQ的基本概念,例如交换机和队列。 这些是RabbitMQ的基本介绍,它是一个功能强大的消息代理系统,用于实现消息传递。在后续的文章中,我们将会更深入地了解RabbitMQ,并进行性能测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [RabbitMQ基础概念详细介绍](https://blog.csdn.net/qq_40704861/article/details/123067104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [RabbitMQ基本概念和使用](https://download.csdn.net/download/weixin_38678022/14962733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值