【系统设计】笔记2

发布时间 2024-01-08 09:38:18作者: dddddcoke

Secenario:

MAU -- monthly active users

step1: 罗列功能

  • register/login
  • user profile display/edit
  • upload image/video
  • search
  • post/share a tweet
  • timeline/news feed
  • follow/unfollow a user

step2: 选出核心功能

  • post a tweet
  • timeline某个用户发的所有帖子
  • news feed关注的用户所有帖子
  • follow/unfollow a user
  • register/login

 

 并发用户

  • average concurrent user: 日活跃*每个用户平均请求次数/一天多少秒 = 150M * 60 / 86400 ~100k
  • peak: 峰值 average concurrent user * 3 ~300k
  • 快速增长的产品:max peak users in 3 month = peak * 2

读频率 read QPS: 300k

写频率 write QPS: 5k

 

QPS的影响:

  • 100 笔记本做web服务器 (实际情况超过10)
  • 1k 好点的web服务器,single point failure
  • 1m 1000台web服务器的集群cluster,需要考虑maintainance

QPS和web server/database之间的关系

  • 一台web server承受量 1k QPS(考虑到逻辑处理时间以及数据库查询的瓶颈)
  • 一台sql db承受量1k QPS(如果join和index query比较多,值会更小)
  • 一台nosql db(Cassandra)承受量是10k的QPS
  • 一台nosql db(Memcached)承受量是1M的QPS