题目
设计短url系统,将长url转换为7字符的短url,并可以根据短url查询原url;
例如:如下page通过短url
https://www.educative.io/collection/page/5668639101419520/5649050225344512/5668600916475904/
可以得到
http://tinyurl.com/jlg8zpc
Use Cases
功能要求:
- 给定原始URL,返回短url,长度为7个字符 done
- 用户访问 short url,系统重定向到原始URL done
- 支持用户自定义short url
- short url有默认过期时间,用户也可以指定过期时间
非功能要求:
5. 高可用:一台服务挂掉,仍然可以使用
6. 低时延:URL重定向实时,低时延
7. 安全:short url不可预测
8. 标准化:服务提供REST API
约束
系统MUA以及数据容量预估:
- MUA:30M
- 数据容量模型:
- long url : 2KB (2048 characters)
- short url : 7B (7 characters)
- created_at: 7B
- total :2.014KB
- 容量预估
- 60 GB/m
- 0.7 TB/y
- 3.5 TB / 5years
API
creatURL