淘宝网秒杀需求分析与实现 - 公开课笔记

主要内容

  • 高并发系统架构面试的时候被问到该怎么说?
  • 一个高并发系统中有哪些重要指标项?
  • 从真实需求触发拆解淘宝网秒杀系统

消息中间件解耦、消峰、限流
分布式锁,限流,熔断,分布式事务,阿里云动态扩容

高并发系统架构在面试的时候应该怎么说

不要聊具体应用的技术,应该提升到架构方面的角度聊。

问:之前做过项目有没有并发量比较高的技术点?
要明确:多高的并发量?1000人在线/每秒10T网络流量/接口的访问频次…哪个指标?
TPS

  • 互联网项目:
  • 传统应用

多条记录写入多个数据库:是事务
读数据库缓存:只读也叫事务,只要访问了资源,就叫事务
静态文件的访问是不是TPS?没有严格的定义
一般来说,消耗资源的叫TPS,查询操作叫QPS

一般请求分为两种:
纯静态资源请求、动态资源请求
QPS:纯静态请求不会打到系统里,会放在CDN上,所以聊QPS不是很专业
TPS:业务接口请求,才是衡量并发量的重要指标,例如瓜子二手平时TPS能达到300~500,峰值1000~1500,58同城平时500~1000,12306平时1000~200012306的问题不在于TPS高,而在于一致性问题,网上卖出票,线下也要扣掉。会因为锁机制让用户连接超时,导致12306不稳定
淘宝网秒杀需求分析与实现 - 公开课笔记
一个项目的TPS有多高,要看总的请求数。拆分为不同的系统,流量分摊到不同的系统上。
一次请求Q可以有好几个Transaction,或者跨了别的系统(微服务)

TPS怎么算的:TPS是指一秒内完成多少个请求,代表处理能力。

  1. 已知请求数量,计算速率:TPS = 每个请求消耗书时间 / 1秒
  2. 限制速率:一模用户
  3. 通过压测得到速率

动态请求包括:推荐系统、当前会话的状态、关注的人
主页index.html可以放在CDN上
淘宝网秒杀需求分析与实现 - 公开课笔记
APP、Web
Web服务的QPS极高,如何降低系统负载,降低网络带宽?如果一次请求拉一个CSS回来,如果一个页面有20个CSS,浏览器要发20次请求,用户体验肯定不好。
一次请求拉1个css文件和一次请求拉20个css文件哪个好?文件大小也是要考虑的瓶颈,文件过大,网络包的开销较大,如果此时网络出现抖动(跳ping),会出现一个没有样式的页面。所以一次请求先把基本样式拉回来,后面的请求再拉额外的CSS做覆盖操作
基于nginx开发的Tengine可以合并请求,nginx直接把请求发送给内核,返回给网卡,不再经过nginx
雪碧图:可以用css把大图拆分
淘宝网秒杀需求分析与实现 - 公开课笔记
APP可以通过缓存或预加载的方式(默认css,logo等,可以提前下发到包里,或做缓存,一次加载之后存在本地)

淘宝网秒杀需求分析与实现 - 公开课笔记
微服务系统架构里都有网关
微服务三原则:不主动、不拒绝、不负责
你给我活,我就干,我把请求转发给你,你爱接不接,我不管。(解耦)
网关做网关的活,服务做服务的活。相互不影响。

找之前的项目里是否有高并发的点
高并发场景:银行系统里的登录、大学选课、考试交卷
聊天:ERP系统用的通知机制(后台入口,通知放进去,不可能所有通知一起发完,可以用mqtt)客户端分两类:支持socket的做长连接,不用socket可以做轮询。取决于客户端支不支持长连接。
数据批量上报

高并发相关的主要技术栈
Nginx做网关
Nginx做二次开发
Nginx直接写博客:用C/Lua
Nginx没有会话的概念,性能极高。Tomcat最消耗性能的是会话。用Netty开发的也是可以的。简单情况下区别不大,
淘宝网秒杀需求分析与实现 - 公开课笔记

Nginx做反向代理,但是不适合做机房的总入口

淘宝网秒杀需求分析与实现 - 公开课笔记

相关文章:

  • 2021-08-13
  • 2021-10-18
  • 2021-09-20
  • 2021-05-07
  • 2021-11-20
  • 2021-07-14
  • 2021-04-08
  • 2021-07-01
猜你喜欢
  • 2022-02-10
  • 2023-01-06
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
相关资源
相似解决方案