短链系统设计-场景需求及性能要求分析

简介: 如脉脉,不会纵容你发太长的网址,会给你转成短链。

如脉脉,不会纵容你发太长的网址,会给你转成短链。


1 Scenario 场景

根据一个 long url 生成一个short url。


http://www.javaedge.com => http://bit.ly/1ULoQB6


根据 short url 还原 long url,并跳转:

5.png



需和面试官确认的问题:


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 即可。

目录
相关文章
|
SQL 缓存 NoSQL
高性能短链设计
高性能短链设计
|
9月前
|
数据采集 算法 索引
转:文本索引算法在企业文档管理系统中具有的稳定性、优势和应用场景
经过多年的研究和实践,一些成熟的文本索引算法如倒排索引已经被广泛应用并被证明是稳定可靠的。这些算法经过了大量的测试和优化,并且在各种场景下都能提供一致性的性能和准确的搜索结果。此外,索引数据的备份和复制等措施可以进一步提高稳定性,确保索引数据的持久性和可恢复性。
58 1
|
9月前
时间溯源的系统设计思路
用不可变的Event Log替代状态表 CRUD。从而实现更好的可靠性,可扩展性与可维护性。我认为是 Application/Schema Design 的一种 paradigm shift
47 0
|
11月前
|
数据挖掘 网络架构
短链系统设计-服务设计
该系统其实很简单,只需要有一个 service即可:URL Service。由于 tiny url只有一个 UrlService: 本身其实就是个小的独立应用 也无需关心其他任何业务功能
111 0
短链系统设计-服务设计
|
11月前
|
存储 SQL NoSQL
短链系统设计-存储设计
3 Storage 数据存取(最能体现实践经验) select 选存储结构 scheme 细化数据表
99 0
|
11月前
|
网络协议
短链系统设计性能优化-分片策略优化
4.5 基于 base62 的分片策略 Hash(long_url)%62作为分片键 并将 hash(long_url)%62直接放到 short url
62 0
|
存储 消息中间件 缓存
性能优化的十种手段
性能优化的十种手段
|
算法 IDE 编译器
HLS设计方法论 - 优化硬件函数方法论及流水操作的优化策略
HLS设计方法论 - 优化硬件函数方法论及流水操作的优化策略
163 0
HLS设计方法论 - 优化硬件函数方法论及流水操作的优化策略
|
搜索推荐 前端开发 数据可视化
|
存储 搜索推荐 数据可视化
强大、好用的离线笔记软件综合评测:优点、缺点、对比
强大、好用的离线笔记、云笔记软件综合评测 离线笔记 Or 云笔记? 对于很多笔记用户而言,选择适合自己的笔记软件是一件难事。选择免费还是付费笔记应用?选择支持 Markdown 语法的笔记软件?要求离线或者云笔记?诸如此类,等等。 笔记软件是否可以离线使用,是用户选择和筛选笔记软件的重要标准。
1608 0
强大、好用的离线笔记软件综合评测:优点、缺点、对比