高并发秒杀系统技术架 构解析和实践

学来的,个人备忘

什么是秒杀?难点在哪?

秒杀系统难点(what)
 高并发、负载压力大
 竞争资源是有限的
 避免对其他业务的影响
 提防“黄牛党”
秒杀系统应用场景(why)
 商品抢购
 群红包
 优惠卷领取
 抢火车票
 在线预约

技术维度对秒杀系统的分析 —— 架构原则

这里写图片描述

技术维度对秒杀系统的分析 —— 优化技术

这里写图片描述

(1)场景描述

 业务描述:有100台苹果7手机,模拟200个用户同时请求购买,每个人都购买N台手机
 实现原理:基于数据库的乐观锁 表t_goods_info

update t_goods_info set
amout = amout - #{buys}
where code = #{code} and amout - #{buys} >=0

优势与问题

优势
 实现简单
 最可靠
劣势
 并发量小 300 - 700

(2)场景描述

 业务描述:有100台苹果7手机,模拟200个用户同时请求购买,每个人都购买N台手机
 实现原理:基于缓存的乐观锁 。基于memcache的decr,decr是原子的。

使用decr的问题

decr是有毒的

Decr的返回值有只有三种情况,
“>0”“=0”“=-1”
10 – 100 =0

解决的办法

这里写图片描述

轻量级的锁机制CAS机制

/**解释:Check and set ,即保存之前进行版本检查,memcache 1.2.4新增的特性。**/
 gets: 获取item,并获取版本号
 cas:更新item,并上传获取item
时的版本号,版本号与服务器一致
才能更新成功

基于memcached 代码演示

云盘地址 ckpx

Redis 与 memcached 的秒杀之争

这里写图片描述

互联网架构师技能树

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值