File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 36361 . 如果在秒杀的过程中由于服务崩溃导致秒杀活动中断,那么没有好的办法,只能立即尝试恢复崩溃服务或者申请另寻时间重新进行秒杀活动
37372 . 如果在下订单的过程中由于用户的某些限制导致下单失败,那么应该回滚事务,立即告诉用户失败原因
3838
39- ### 难点+坑+复盘优化
39+ ### 总结
4040#### 原则
4141业务优化思路:业务上适当规避
4242技术优化思路:尽量将请求拦截在数据库的上游,因为一旦大量请求进入数据库,性能会急剧下降
43- 架构原则:合适、简单、演化
43+ 架构原则:合适、简单、演化(以上内容是最终版本,初版可以说没有用到队列,直接使用缓存-数据库这样的架构)
4444
45- ## 难点
46- 1 . 将高并发大流量一步步从业务和技术方面有条不紊地应对过来
47- 2 . 代码中异常情况的处理与应急预案的准备
45+ #### 难点
46+ 1 . 如何将高并发大流量一步步从业务和技术方面有条不紊地应对过来
47+ 2 . 如何在代码中处理好异常情况以及应急预案的准备
4848
49- ## 坑
49+ #### 坑
50501 . 以上的解决方案能通过利用Redis与消息队列集群来承载非常高的并发量,但是运维成本高。比如Redis与消息队列都必须用到集群才能保证稳定性,会导致运维成本太高。所以需要有专业的运维团队维护。
51512 . 避免同一用户同时下多个订单,需要写好业务逻辑或在订单表中加上用户ID与商品ID的唯一索引;避免卖超问题,在更新数量的sql上需要加上>0条件
5252
53- ## 优化
53+ #### 优化
54541 . 将7层负载均衡Nginx与4层负载均衡LVS一起使用进一步提高并发量
55552 . 以上是应用架构上的优化,在部署的Redis、消息队列、数据库、虚拟机偏向选择带宽与硬盘读写速度高的
56563 . 提前预热,将最新的静态资源同步更新到CDN的所有节点上,在Redis中提前加载好需要售卖的产品信息
57- 4 . 使用分布式限流减少Redis访问压力,在Nginx中配置并发连接数与速度限制,但如果有很多不同的活动同时进行则不适用
57+ 4 . 使用分布式限流减少Redis访问压力,在Nginx中配置并发连接数与速度限制
5858
5959欢迎光临[ 我的博客] ( http://www.wangtianyi.top/?utm_source=github&utm_medium=github ) ,发现更多技术资源~
You can’t perform that action at this time.
0 commit comments