做抢购类型业务的思路

   做抢购类型的业务的时候首先要看业务情况,如果只是内部活动,比如年终年会抽奖,竞赛抢答这种不涉及财务的高并发,这种需求不会涉及到脚本等不公平竞争的情况,需要一个超级管理者,开启抢答权限,人数少的情况下可以直接对程序加锁,因为不涉及后续业务处理,只需要现场确定谁抢中,并发效率很高,参与人数多,可以使用CAS,并发可达几千。

  做生产的抢购业务较为复杂。

  前端:1.动静分离,CDN加速    2.限流,禁止重复提交,到点开放按钮,单位时间单次点击   3.接口防刷,URL动态化  
  后端:1.redis 保存库存,抢到就生成一个订单号,然后所有的其他信息放到mq削峰 2.单一职责,独立服务器   3.,Redis集群, 
             主从同步、读写分离,我们还搞点哨兵,开启持久化高可用  4.扣减redis库存,用LUA,管道,乐观锁等,
              4.降级熔断隔离 5.数据库分库分表   6.TCC及最终一致性丢弃(效率低),采用2PC 3PC
  风控:丢弃有任何疑问的USERID

你可能感兴趣的:(做抢购类型业务的思路)