【红包雨压测】提供2万用户30秒内5次请求的并发服务支持

本文回顾了上项目中的红包雨功能,重点讨论了高并发场景下的配置、压测实例、以及Redis和RocketMQ在分发与抢红包过程中的性能瓶颈。提到如何处理RocketMQ的TPS上限和整体系统的并发需求.

上个项目做了一个红包雨功能,这里回顾总结一下,红包雨高并发场景如下:
提供2万用户30秒内5次请求的并发服务支持
>

红包雨的实例配置:

  • AMD 计算型 c7a
  • 16 vCPU
  • 32 GiB
  • 云盘类型(ESSD AutoPL)所选云盘的最大IOPS为 40000,最大吞吐量为 705 MB/s
  • ecs.c7a.4xlarge 100Mbps (峰值)

压测的实例配置:

  • 8 vCPU 16 GiB (I/O优化)
  • ecs.e-c1m2.xlarge 100Mbps (峰值)
  • 云盘类型(ESSD AutoPL)所选云盘的最大IOPS为 40000,最大吞吐量为 705 MB/s

分红包

流程:拆分红包-》写入缓存–》写入文件
接口示例:http://139.224.70.38:8097/api/v3/sendRedPackage?totalMoney=1000000&redPackageNumber=500000

抢红包

流程:从缓存中取一个红包–》存入另一个缓存–》线程池异步发送消息队列–》消息队列消费保持缓存日志消息–》定时任务获取缓存–》分批次插入数据库中。

如果运行中出现以下错误说明RocketMQ的收发TPS有上限,需要调整机器的配置,升配:
RocketMQ Message hasn’t been sent. Caused by CODE: 215 DESC: Proxy rocketmq-proxy-rmq-cn-zpr3fdq3u0d messages flow control

在这里插入图片描述由于10万次请求都是同一个应用服务收发,使用支持消息读写TPS总和20万次,在30秒内处理完,则需要6,666.666666666667
在这里插入图片描述
由于代码是异步发送消息
在这里插入图片描述可以降低一些要求
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
性能瓶颈在redis和rocketmq,由于mysql是定时任务分批次批量插入,所以对其要求不高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值