短链接创业记

从一个周末项目到百万级短链接服务

在解决真实问题的过程中学习系统设计

系统设计 架构 分布式系统

系统演进路线

从短码映射到安全可运营的短链接平台

第 1 版

短码映射

第一个用户只需要把长 URL 变成短链接。

短码生成映射表302 跳转

最小闭环可用,但短码容量、冲突和跳转性能还没被验证。

第 2 版

低延迟跳转

短链开始传播,访问量远大于创建量。

Redis 缓存负缓存301/302 策略异步统计

跳转链路变短,但状态变更和缓存一致性必须处理。

第 3 版

运营能力

用户想看点击数据、设置别名、批量管理和过期时间。

点击事件统计报表自定义别名生命周期

短链接从工具变成平台,数据和管理能力开始成为核心价值。

生产版

安全治理平台

钓鱼、诈骗和刷量开始利用短链传播。

URL 审核风控拦截申诉复核缓存刷新审计日志

生产级短链平台必须在高性能跳转和安全召回之间保持平衡。

课程简介

短链接服务看起来只是把长 URL 变短,但真正上线后会很快变成一个完整系统:短码生成、映射存储、重定向性能、缓存、限流、安全审核、访问统计、链接生命周期和分布式 ID 都会一起出现。

这门课用“短链接创业记”的叙事方式,从第一个可用版本开始,逐步处理用户增长、恶意滥用、数据统计和高可用架构问题。

学习路线

  1. 开始:实现第一个短链接,建立创建与跳转的最小闭环。
  2. URL 编码:设计短码生成、Base62 编码、哈希冲突和可预测性问题。
  3. 存储设计:保存长短链接映射,并处理索引、数据库选型和扩展。
  4. 重定向性能:比较 301/302,设计缓存和低延迟跳转路径。
  5. 高并发优化:面对流量突增,加入限流、CDN 和容量保护。
  6. 分布式 ID:为短码生成提供全局唯一、可扩展的 ID 来源。
  7. 统计分析系统:记录点击事件,支持实时统计和离线分析。
  8. 自定义别名:支持用户自定义短码,并处理抢注和权益问题。
  9. 链接管理:支持过期、权限、批量操作和生命周期治理。
  10. 安全防护:防止恶意 URL、钓鱼链接、刷量和平台滥用。
  11. 完整系统:把所有模块收束成可上线、可运维的短链接平台。

读完后,你应该能从一个简单 CRUD 功能出发,设计出兼顾性能、安全、数据分析和运营能力的短链接系统。

术语说明

为了避免后面反复解释,先约定几个词在这门课里的含义:

  • 长 URL:用户原本想分享的完整链接,通常很长,也可能带查询参数。
  • 短码:短链接路径里的核心标识,例如 a1b2c3。系统靠它找到原始 URL。
  • 短链映射short_code -> long_url 这条关系,是短链接系统最核心的数据。
  • 创建链路:用户提交长 URL,系统生成短码、审核、落库并返回短链接的流程。
  • 跳转链路:用户访问短链接,系统查询映射、校验状态并返回 301 或 302 的流程。
  • 302 重定向:临时跳转。课程默认优先使用它,因为它更适合统计点击、修改目标地址和链接治理。
  • 点击事件:一次短链接访问产生的事实记录,后续用于统计、风控和报表。
  • 链接状态机:短链接从正常、暂停、过期到封禁、删除的状态变化规则。

章节