![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
亿级流量秒杀系统
文章平均质量分 87
猿小羽
技术本身是不值钱的,只有和业务结合的技术才是值钱的!
技术是为了实现某个业务,进而通过业务赚钱!
展开
-
第十章 课程总结
第十章 课程总结项目框架回顾项目结构分层、业务逻辑分层、领域模型分层代码实战中成长,发现问题业务编码过程中需要思考性能问题性能压测框架云端部署体验企业级开发流程容器优化通用方案,管道优化通用方案(解决keep alive)分布式扩展负载均衡设计水平扩展 (Nginx)vs 垂直扩展 (redis + mysql)查询优化技术之多级缓存多级缓存屏障系统读不到 vs 脏读越近越好的缓存查询优化技术之页面静态化CDN 的美妙设计一切皆页面,一切皆静态原创 2022-05-02 12:42:03 · 913 阅读 · 0 评论 -
第九章 防刷限流技术
第九章 防刷限流技术本章目标掌握验证码生成与验证技术掌握限流原理与实现掌握防黄牛技术验证码技术及实现包装秒杀令牌前置,需要验证码来错峰数学公式验证码生成器代码实现新建 CodeUtil 实现生成验证码public class CodeUtil { private static int width = 90;// 定义图片的width private static int height = 20;// 定义图片的height private static原创 2022-05-02 12:41:16 · 609 阅读 · 0 评论 -
第八章 流量削峰技术
第八章 流量削峰技术源码地址:https://gitee.com/xu3619/miaosha本章目标掌握秒杀令牌的原理和使用方式掌握秒杀大闸的原理和使用方式掌握队列泄洪的原理和使用方式抛缺陷秒杀下单接口会被脚本不停的刷秒杀验证逻辑和秒杀下单接口强关联,代码冗余度高秒杀下单和对活动是否开始是没有关联的,接口关联过高秒杀验证逻辑复杂,对交易系统产生无关联负载秒杀令牌原理及实现秒杀接口需要依靠令牌才能进入秒杀的令牌由秒杀活动模块负责生成秒杀活动模块对秒杀令牌生成全权处原创 2022-05-01 22:12:46 · 1040 阅读 · 0 评论 -
第七章 交易性能优化技术之事务型消息
第七章 交易性能优化技术之事务型消息事务型消息(上)回顾整个下单流程,我们之前做了下单减缓存库存优化以及回补库存的操作。但是因为整个下单操作是属于同一个 transaction 事务的,如果用户下单成功,但是之后订单入库或返回前端的过程中发生错误了,事务回滚,会导致少卖的现象,有可能造成库存堆积少卖也就是事务 (@Transactional) 回滚只针对mysql数据库,而对redis不起作用,就会出现redis减库存了,而mysql数据库事务回滚后,库存并没有减少,这种情况叫做少卖。原创 2022-05-01 18:42:09 · 436 阅读 · 0 评论 -
第六章 交易性能优化技术之缓存库存
第六章 交易性能优化技术之缓存库存交易性能瓶颈jmeter压测(对活动下单过程进行压测,采用post请求,设置传入参数,性能发现下单avarage大约2s,tps500,交易验证主要完全依赖数据库的操作)交易验证完全依赖数据库库存行锁后置处理逻辑交易验证优化用户风控策略优化:策略缓存模型化在开始交易后,针对活动实时信息和用户实时信息的验证,目的是为了风控策略。检查用户账号是否异常,是否异地登陆,策略是:通过异步的方式将用户模型写入缓存,与实时信息做一致性检验,做到风控策略。原创 2022-04-29 17:42:40 · 1481 阅读 · 0 评论 -
第五章 静态资源 CDN 引入
第五章 静态资源 CDN 引入静态请求 CDN用户将静态资源数据请求到ECS服务器,ECS服务器解析到阿里云的CDN中,CDN可以理解为一个无限大的内容磁盘缓存,本身没有文件存储。当用户访问 getItem 的一个静态资源文件的时候,会根据路由规则查看本地是否有这样的文件,如果有直接返回,没有就回源到源站,回源到下面的OSS中获取静态资源文件。CDN一边返回对应的文件,一边将文件按照http指示的生命周期缓存起来,以便下次用户访问时,直接返回。Cache Control 响应头Cache原创 2022-04-29 09:18:11 · 4805 阅读 · 0 评论 -
第四章 查询优化技术之多级缓存
第四章 查询优化技术之多级缓存缓存设计原则用快速存取设备,用内存将缓存推到离用户最近的地方脏缓存清理我们的项目采用多级缓存的架构第一级 Redis 缓存Redis缓存有集中管理缓存的特点,是常见NoSql数据库组件第二级 热点缓存本地缓存热点数据存到JVM本地缓存中第三级 nginx proxy cache 缓存所有数据最后都会在nginx服务器上做反向代理,nginx服务器也可以开启proxy cache缓存第四级 nginx lua 缓存nginx原创 2022-04-28 19:09:54 · 495 阅读 · 0 评论 -
第三章 分布式扩展(二)
第三章 分布式扩展(二)Nginx 高性能原因epoll 多路复用采用epoll 多路复用机制完成非阻塞IO操作master worker 进程模型允许进程平滑重启以及平滑的加载配置保证不断开与客户端连接,可以依赖进程模型完成对应的操作协程机制基于协程的非阻塞式编程的一套机制来完成单线程、单进程的机制,却又支持并发的编程调用接口epoll 多路复用了解 epoll多路复用之前,我们先要知道 bio模型以及 select模型java bio 模型,阻塞进程式的模型原创 2022-04-26 16:47:31 · 536 阅读 · 1 评论 -
第三章 分布式扩展(一)
第三章 分布式扩展当我们用 top -H 命令查看服务器 cpu 运行状况时,程序单机运行时很卡,表象是单机 cpu 使用率增高,内存 memory 占用增加,网络带宽使用增加,有几个参数值得注意cpu us : 用户空间cpu使用情况(用户态进程占比,用户层代码)cpu sy:内核空间cpu使用情况(核心态进程占比,系统调用)load average:1分钟/5分钟/15分钟负载load平均值,跟着核数系数变化,0代表正常,1代表cpu打满,1+代表cpu处于等待阻塞的状态memory:原创 2022-04-25 14:13:57 · 2523 阅读 · 0 评论 -
第二章 云端部署
第二章 云端部署数据库部署启动服务器的数据库服务systemctl start mariadb.service将 miaosha 数据库表备份/usr/local/mysql/bin/mysqldump -uroot -p283619 --databases miaosha > ~/Downloads/miaosha.sql然后将备份文件,上传到服务器中将文件在服务器中执行一遍,相当于导入表结构和表数据到服务器的数据库mysql -uroot -p283619 &l原创 2022-04-24 13:13:21 · 2948 阅读 · 0 评论 -
第一章 电商秒杀商品回顾
第一章 电商秒杀商品回顾项目环境及技术学习环境:Intellij IDEA 2021.3阿里云ECS或本地Linux虚拟机,操作系统 centos 7.6MySQL5.6数据库,Redis4.0.1缓存,消息队列rocketmq4.5,phantomjs无头浏览器技术储备:了解 SSM、SpringBoot 等框架熟悉 Linux 基本命令了解 MySQL 常用命令了解 Redis 常用命令项目框架设计数据层:事务 @Transcantional 注解的处理原创 2022-04-23 12:15:54 · 2743 阅读 · 8 评论