简单秒杀系统总结

过程

           从 synchorinzed锁悲观锁-------------------》version乐观锁

         开始考虑到大数据量并发,避免超卖现象【因为上一个线程从数据库里查询库存不为0之后,还没有进行完减库存的操作,下一个线程又开始查询库存,此时库存还不为0,所以又进行了一次减库存的操作】,加了synchorinzed锁,让一个线程得到锁之后,其他锁一直等着,直到上一个线程锁释放,下一个线程拿到才能执行,造成了线程阻塞服务器性能下降和用户在客户端界面等待时间过长,所以换成了加了version版本的乐观锁,减库存和增加版本号的操作在数据库层面执行,其他线程都可以进行查询操作,但是在修改库存的时候,只能有一个线程操作,通过判断版本号是否相等,来进行减库存操作

从令牌桶算法接口处限流---------》到redis限时-----》使用redis的md5加盐认证是否为到APP点击按钮的用户下单------》使用redis限制同一个用户的访问次数

从为了避免服务器和数据库压力过大,在源头切断请求数量,使用令牌桶算法的接口限流,设置一定的令牌,在一定时间内没有得到令牌的请求被抛弃,不进行任何业务操作,再到在秒杀之前使用redis判断秒杀活动是否结束再抛弃一部分线程,再到为了避免一个用户下单次数过多使用的redis限制用户访问次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值