秒杀
文章平均质量分 65
﹏天微亮ミ夜微凉╮
......
展开
-
【秒杀扩展】mysql 性能优化
通用性能优化口诀 缓存 异步 批处理 mysq| 应用优化 写操作:批量insert,批量update Sq|编译N次和1次的时间与空间复杂度 网络消耗的时间复杂度 磁盘寻址的复杂度 读操作:索引 主键查询千万条记录1-10ms 唯一索引千万条记录10-100ms 非唯一索引千万条记录100- 1000ms 无索引百万条记录1000ms+ 单机配置优化 max_connection = 1000 mysql 执行引擎先不是操作数据而是记录日志 undo/redo 日志顺序写操作.原创 2021-07-01 17:33:35 · 140 阅读 · 0 评论 -
【秒杀系统】查询性能优化技术之页面静态化
DNS用CNAME解析到源站 整个的一个商品详情页,先加载静态资源后通过 ajax 请求获取商品详情页内容渲染的方式,任何一步没做到位,都会拖累整个系统 tps/qps 的一个响应 现在的静态请求直接是打到我们的 Nginx 的 resources 的目录,现在将 resources 的地址重定向到阿里云的 CDN 内容分发网络,在获取静态资源内容先通过 CDN,CDN 没有在回源到阿里云源站(源站可以理解为本地静态资源文件),一边返回静态资源文件一边缓存起来,以便用户下一次访问时可以不做回源的操作原创 2021-07-01 17:33:10 · 335 阅读 · 0 评论 -
【秒杀扩展】登录态管理
分布式会话持久性管理 当一个用户通过前端访问时, Nginx 通过反向代理负载均衡的轮询策略转发打到 tomacat 中的 java 上,再这样的分布式会话中,原本 cookie + session 的方案在 tomcat 的内存级别维护 session 的列表显然就失效了,tomcat 之间的内存并不是互通的,这时就需要引入分布式会话管理存储 会话有效期 不与服务端发生交互的呆滞时间,Tomcat默认为30m 会话续命:当用户在呆滞时间内又带着 cookieId 的请求过来,tomcat 会寻找到对应原创 2021-07-01 17:32:29 · 173 阅读 · 0 评论 -
【秒杀系统】防刷限流技术
验证码生成与验证技术 包装秒杀令牌前置,需要验证码来错峰 数学公式验证码生成器 //生成验证码 @RequestMapping(value = "/generateverifycode",method = {RequestMethod.GET,RequestMethod.POST}) @ResponseBody public void generateverifycode(HttpServletResponse response) throws BusinessException,原创 2021-07-01 17:32:01 · 167 阅读 · 0 评论 -
【秒杀系统】流量削峰
为什么会存在流量削峰? 主要是包含两个方面的能力,在之前经历了查询优化技术、交易优化技术使用了缓存校验 + 异步扣减库存的方式使得秒杀下单的性能有了明显提升。但是,再这样的一些技术当中,仍然不得不面临一些问题,也就是浪涌洪峰流量的涌入问题,秒杀瞬间的流量很大,我么需要将涌入的巨大流量平滑的过渡掉。因此,流量削峰技术应运而生 目标 掌握秒杀令牌的原理和使用方式 掌握秒杀大闸的原理和使用方式 掌握队列泄洪的原理和使用方式 目前秒杀系统的缺陷 秒杀下单接口会被脚本不停的刷新:秒杀的下单接口就是一个公网的原创 2021-07-01 17:31:33 · 418 阅读 · 0 评论 -
【秒杀系统】交易性能优化之缓存库存
交易性能瓶颈 交易验证完全依赖数据库 @Override @Transactional public OrderModel createOrder(Integer userId, Integer itemId, Integer promoId, Integer amount) throws BusinessException { //1.校验下单状态,下单的商品是否存在,用户是否合法,购买数量是否正确 ItemModel itemModel = i原创 2021-07-01 17:31:08 · 1975 阅读 · 0 评论 -
【秒杀系统】查询性能优化技术之多级缓存
多级缓存 redis缓存 默认springboot自带redisTemplet不带序列化 热点内存本地缓存 nginx proxy cache缓存 nginx lua缓存原创 2021-07-01 17:30:36 · 183 阅读 · 0 评论 -
【秒杀系统】分布式扩展
nginx反向代理负载均衡 单机容量问题,水平扩展 表象:单机cpu使用率增高,memory占用增加,网络带宽使用增加 cpu us :用户空间的cpu使用情况(用户层代码) cpu sy :内核空间的cpu使用情况(系统调用) load average : 1,5,15分钟load平均值,跟着核数系数, 0代表通常 1代表打满1+代表等待阻塞 memory:free空闲内存, used使用内存 nginx反向代理 make make install 动静分离 负载原创 2021-07-01 17:30:03 · 177 阅读 · 0 评论 -
【秒杀系统】云端部署、性能压测
项目云端部署 JDK 安装 默认安装在 /usr/java 中 刷新环境变量 MySQL 安装 备份、上传、恢复 用maven打成jar包上传到服务器 命令行输入:mvn clean package pom 文件添加后刷新maven 上传到服务器 执行 java -jar 命令,访问不出来,去阿里云开放端口 外挂配置文件 编写 deploy 脚本 jmeter性能压测 线程组 Http请求 查看结果树 聚合报告 发现并发容量问题 top -h 先压200再5原创 2021-07-01 17:29:38 · 186 阅读 · 0 评论
分享