聚焦Java性能优化 打造亿级流量秒杀系统【学习笔记】11_如何解决秒杀业务系统的热点问题

我们在做各种业务研发的时候经常会碰到热点问题影响系统稳定性和性能瓶颈,例如支付系统中的热点账户进出款,电商系统中的热点商品参与秒杀,金融系统中的热点理财产品抢购等,那今天就让我带大家来一起看下我们如何解决热点问题。

首先我们要搞清楚的是热点问题必须包含两个字,一个是热一个是点,点表示我们在系统的业务路径上有一个地方存在性能的瓶颈,比如数据库,文件系统,网络,甚至于内存等,这个点一般有io,锁等问题构成。热表示其被访问的频率很高,就是说一个被访问频率很高的io或锁自然而然就编程了我们系统业务路径上的性能瓶颈。

其次我们需要弄清楚我们的热点问题是属于读热点问题还是写热点问题,两种热点问题的处理方案完全不一样,比如我们对一个热门的秒杀商品详情页的访问就属于是读热点问题,对一个秒杀商品的库存抢操作就是一个写热点问题。虽然分离了读热点问题和写热点问题,但是往往在读热点问题中也需要处理写热点问题的解决方案,比如我对一个热门的秒杀商品详情的读热点问题使用了缓存解决方案,但因为商家对商品做了更新价格的东西,立马需要对写热点而造成的缓存脏数据做清理的操作,因此就变成了一个读写混合的热点问题。

然后我们开始先讨论比较容易解决的读热点问题的解决方案。一般我们做系统之出使用数据库,直接对用户的请求做sql的select操作,那对于此类的热点问题我们首先想到的是需要优化数据库的读操作,我们对应的查询是否走了索引,走的是否是唯一索引甚至于主健效果最佳,优化了sql性能后我们可以借助于mysql innodb的buffer做一些文章,在数据库层面就提供足够的缓冲区,加速对应的性能,实验证明,只要走的是主健或唯一索引,在innodb缓冲区足够大的情况下,mysql抗上亿的

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值