高并发
zzqtty
这个作者很懒,什么都没留下…
展开
-
高性能高可用,秒杀系统架构实现理论
1列子模型购物秒杀系统模型2系统架构a 严禁超卖SQL加限制条件 itemNum>0;b 用户重复点击提交前台做控制,防止重复提交c 服务器单机承受能力负载均衡,分散流量,限制流量,到多台机器d 脚本工具攻击URLredis实现限制用户操作频率e 数据库承受不了过滤之后的用户请求数引入令牌机制f其他,数据库压力与系统架构消息队列,异步执行sql,微服务架构,分库分表,Docker扩容...原创 2018-06-29 13:24:58 · 540 阅读 · 0 评论 -
高并发抢红包案列以及使用锁,版本号,redis缓存解决,项目可运行,详细注释(一)
1.问题描述简单来说就是当大量数据来访问数据库的时候,可能导致数据不一致。如下:发一个2000元的大红包,总共2000个小红包,每个一元,但是有30000个人去抢,红包少一个就减一,插入抢红包用户信息,结果看图: stock表示余留的红包数,结果是负一 看见那个2001,居然有2001个人抢到了红包,这就是问题所在了。接下来我会给出整个项目,和讲解。2.建立...原创 2018-08-16 14:40:12 · 892 阅读 · 0 评论 -
高并发抢红包案列以及使用锁,版本号,redis缓存解决,项目可运行,详细注释(二)
1 悲观锁<!-- 查询红包具体信息 --><select id="getRedPacketForUpdate" parameterType="int" resultType="test814RedPacket.pojo.RedPacket"> select id,user_id as userId,amount,send_date as sendD...原创 2018-08-16 16:37:55 · 2339 阅读 · 1 评论 -
高并发抢红包案列以及使用锁,版本号,redis缓存解决,项目可运行,详细注释(三)
1redis抢红包实现在redis中首先设置红包的数量和金额,用户抢到红包之后,在redis中计算红包数量-1,保存用户的信息,直到红包被抢完。再将用户信息批量保存到数据库中。由于redis的计算是原子性的,所以不会出现数据错误,可以理解成atomic系列具体的环境搭建请查看https://blog.csdn.net/zzqtty/article/details/81741603 ...原创 2018-08-21 14:48:56 · 4320 阅读 · 1 评论