
秒杀优化项目
喵了个咪的回忆丶
Java后台
展开
-
秒杀项目面试点
mysql版本mysql版本采用的是 8.0.16,它与5.6版本相比,默认的存储引擎改为InnoDB引擎,而且它的增删查改性能相比原先的版本也有较大的提升。数据库表(密码需要跟用户的主表信息分开存取)用户信息表:id、名字、性别、年龄、手机号等用户基本信息。用户密码表:id、密码(以密文的方式存储在数据库里,不能以明文的方式)、use_id 作为外键关联到前面的用户信息表上。单机版redis因为单机版redis与cluster集群相比,仅仅存在水平扩展的容量问题,而由于这个项目是自原创 2020-09-04 15:40:35 · 721 阅读 · 0 评论 -
令牌桶限流
令牌桶和漏桶算法的区别漏桶算法和令牌桶算法都能够限制数据的传输速率,而令牌桶算法还能允许一定程度的突发传输,只要桶中存在令牌,就可以突发的传输数据直到用户配置的上限,因此它适合于具有突发特性的流量,比如秒杀的场景。...原创 2020-04-26 09:33:02 · 184 阅读 · 0 评论 -
解决超卖
解决超卖给商品库存添加一个版本号字段,在进行减库存的SQL操作时,先判断版本号是否是查询库存时的版本号,如果是,就成功扣减库存,否则就抢购失败,不更新数据库。...原创 2020-04-25 17:16:18 · 271 阅读 · 0 评论 -
二、分布式会话
基于 token 传输类似 sessionId用户登录后,随机生成一个 UUID 作为 token,然后以 Cookie 的方式返回给浏览器,同时将 token 作为 redis 的 key、用户对象作为 value 存到 redis 中。下次浏览器再发送请求时,会带上这个 Cookie。然后服务器获取这个 cookie 并解析得到 token,然后在 redis 中查询,如果命中,则返回对...原创 2020-04-10 20:55:13 · 138 阅读 · 0 评论 -
一、分布式部署(Nginx)
分布式部署将系统拆分到多态服务器上进行分布式部署:一台服务器做 Nginx 负载均衡,两台服务器部署应用程序,一台服务器作为数据库服务器。部署后通过 Jmeter 工具进行压测,设置的是 1000 个线程循环 20 次。分布式部署前:平均耗时500ms左右,TPS 在1500左右,Mysql 服务器的 CPU 占用率在 80% 左右。分布式部署后:平均耗时也是500ms左右,TPS 在160...原创 2020-04-10 15:14:25 · 2196 阅读 · 0 评论