秒杀场景设计核心:热点数据

秒杀场景特点

  • 参与人多
  • 商品库存少
  • 速度快,几秒就结束,真男人

大部分电商的秒杀都是这样的,所以基于以上特点,我们总结的技术方面的难点就是:

  • 流量大
    系统如何抵抗搞负载,保证高可用
  • 高并发
    如何保证资源扣减正确,比如商品库存扣减正确,不超卖,不一件多卖,红包使用正确

解决方法

  • 限流
    对下单接口,查询接口做限流准别,防止过多流量进入系统,
  • 缓存
    某些资源要提前缓存,不走库查询,这其实是提高QPS,防止请求过长
  • 并发锁
    数据库层面的乐观锁机制,当然也可以加缓存锁,防止并发问题,但那样太限制系统的并发,所以建议采取乐观锁,甚至分段锁来提高并发。

优化热点:提高系统QPS

提高QPS,就是让给你系统运转的更快。优化的核心就在于热点数据,说到底就是这么多流量都访问几个数据,这几个数据就成为了热点数据。

功能降级:降低调用时间限制

防止下游的应用拖垮系统,需要对功能降级,或者降低http调用时间、dubbo时间,超时就认为调用失败。

缓存

缓存一部分数据,时间快于直接访问数据库。可以考虑本地缓存,本地缓存来降低访问缓存的请求。有一个秒杀数据集合,这样可以针对这些数据做一些优化处理。

分段锁

类似currentHashMap一样,将100个库存分成多段,这样并发就提高了5倍,这样可以提高QPS。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值