设计一个网址缩短器
· 阅读需 4 分钟
设计一个系统,将用户提供的网址转换为缩短的网址,并重定向回原始网址。描述系统的工作原理。你将如何分配缩短的网址?你将如何存储缩短网址与原始网址的映射?你将如何实现重定向服务器?你将如何存储点击统计数据?
假设:我通常不会在初始问题陈述中包含这些假设。优秀的候选人会在提出设计时询问规模。
- 注册重定向网址的独特域名总数大约在数万左右
- 新网址注册量约为 10,000,000/天(100/秒)
- 重定向请求量约为 10B/天(100,000/秒)
- 提醒候选人这些是平均数字 - 在高峰流量时(例如“人们下班回家时”或“超级碗期间”)可能会高得多。
- 最近的统计数据(在当前日期内)应聚合并在 5 分钟延迟后可用
- 长期回顾统计数据可以每天计算
假设
每天 1B 新网址,总共 100B 条目 越短越好 显示统计数据(实时和每日/月度/年度)