您的位置 首页 java

阿里巴巴Java性能调优实战:记一次双十一抢购性能瓶颈调优

记一次双十一抢购性能瓶颈调优

每年的双十一都是很多研发部门最头痛的节日,由于这个节日比较特殊,公司一般都会准备 大量的抢购活动,相应的瞬时高并发请求对系统来说是个不小的考验。

还记得我们公司商城第一次做双十一抢购活动,优惠力度特别大,购买量也很大,提交订单 的接口 TPS 一度达到了 10W。

在首波抢购时,后台服务监控就已经显示服务器的各项指标 都超过了 70%,CPU 更是一直处于 400%(4核 CPU),数据库磁盘 I/O 一直处于 100%状态。

由于瞬时写入日志量非常大,导致我们的后台服务监控在短时间内,无法实时获取到 最新的请求监控数据,此时后台开始出现一系列的异常报警。

阿里巴巴Java性能调优实战:记一次双十一抢购性能瓶颈调优

抢购业务流程

在进行具体的性能问题讨论之前,我们不妨先来了解下一个常规的抢购业务流程,这样方便 我们更好地理解一个抢购系统的性能瓶颈以及调优过程。

抢购系统中的性能瓶颈

熟悉了一个常规的抢购业务流程之后,我们再来看看抢购中都有哪些业务会出现性能瓶颈。

1. 商品详情页面

2. 抢购倒计时

3. 获取购买资格

4. 提交订单

5. 支付 回调 业务操作

性能瓶颈调优

1. 限流实现优化

2. 流量削峰

但在瞬时并发非常大的情况下,依然会出现类似问题,此时,我们可以考虑在分布式锁前面 新增一个等待队列,减缓抢购出现的集中式请求,相当于一个流量削峰。当请求的 key 值 放入到队列中,请求线程进入阻塞状态,当线程从队列中获取到请求线程的 key 值时,就 会唤醒请求线程获取购买资格。

3. 数据丢失问题

总结

文章来源:智云一二三科技

文章标题:阿里巴巴Java性能调优实战:记一次双十一抢购性能瓶颈调优

文章地址:https://www.zhihuclub.com/185785.shtml

关于作者: 智云科技

热门文章

网站地图