短链系统设计-场景需求及性能要求分析
Posted JavaEdge.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了短链系统设计-场景需求及性能要求分析相关的知识,希望对你有一定的参考价值。
如脉脉,不会纵容你发太长的网址,会给你转成短链。
1 Scenario 场景
根据一个 long url 生成一个short url。
如 http://www.javaedge.com => http://bit.ly/1ULoQB6
根据 short url 还原 long url,并跳转:
需和面试官确认的问题:
long url和short url必须一一对应吗?
Short url长时间没人用,需要释放吗?
1.1 QPS 分析
- 问日活,如微博100M
- 推算产生一条 tiny url 的 qps
- 假设每个用户平均每天 0.1(发10 条,有一条有链接) 条带 URL 的微博
- 平均写 QPS = 100M * 0.1 / 86400 = 100
- 峰值写 qps = 100 * 2 = 200
- 推算点击一条tiny url的 qps
- 假设每个用户平均点 1 个tiny url
- 平均写 QPS = 100M * 1 / 86400 = 1k
- 峰值读 qps = 1k * 2 = 2k
- deduce 每天产生的新 URL 所占存储
- 100M * 0.1 = 10M 条
- 每条 URL 长度平均按 100 算,共 1G
- 1T 硬盘能用 3 年
由2、3 分析可知,并不需要分布式或者 sharding,支持 2k QPS,一台 SSD mysql 即可。
以上是关于短链系统设计-场景需求及性能要求分析的主要内容,如果未能解决你的问题,请参考以下文章