这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
构建 API 平台
从零开始构建一个 API 平台
在解决真实问题的过程中学习系统设计
系统设计 架构 分布式系统 API设计
成长路线
这门课不是先把所有架构名词讲一遍,而是跟着一个 API 平台慢慢长大。每一章都从一个新问题开始:用户来了,系统变慢了;调用变多了,单机扛不住了;开始收费了,就要认真统计和计费;业务走向全国后,又会遇到多地域、同步和容灾。
- 起步:上线第一个天气 API,再补一个管理后台。先理解 API 流程、数据库记录和基础监控。
- 第一批用户:用户开始真实调用,响应速度和缓存问题出现。这里会引入 Redis、过期策略、穿透、击穿和雪崩。
- 建立门槛:免费 API 被频繁调用,需要知道是谁在用。这里会设计用户认证、API Key、数据库事务和归档。
- 用户增长:单机开始吃力,调用量也要统计清楚。这里会处理统计表、限流、负载均衡和健康检查。
- 商业化:平台开始做套餐、账单和超额计费。这里重点看套餐设计、账单幂等和计费追溯。
- API 变多:数据源和接口越来越多,不能每个都手写一套。这里会处理 API 管理、定时更新、缓存策略和故障隔离。
- 流量暴涨:热点、读写压力和突发流量开始考验系统。这里会引入读写分离、本地缓存、削峰填谷和安全防护。
- 全国访问:用户分布在不同地域,延迟和同步成为新问题。这里会讨论多地域部署、就近路由和数据同步。
- 数据变大:调用日志越来越多,查询和分析都变慢。这里会处理大表治理、冷热分离和数据分析。
- 高可用:任何单点故障都不能让平台长时间不可用。这里会讨论健康检查、数据库高可用、熔断和容灾。
- 回顾:回头看整个系统为什么一步步变成这样。最后整理架构取舍、关键决策和设计原则。
术语说明
为了阅读时不被中英文名称打断,这里先约定几个词在本课程里的含义:
- 管理后台 API(Admin API):专门给后台页面提供数据的服务,比如调用统计、用户列表、监控数据。
- 管理后台界面(Admin Dashboard):运营和开发者看到的后台页面,用来查看平台状态和处理问题。
- API Key:用户调用 API 时携带的访问密钥。课程里说“密钥”时,通常就是指 API Key。
- 用户认证:用 API Key 判断“这个请求是谁发来的、有没有权限、还能不能继续调用”。
- Redis Sentinel(哨兵模式):主要解决 Redis 主节点故障后的自动切换问题。
- Redis Cluster(集群模式):主要解决 Redis 容量扩展和分片问题。课程里泛称“Redis 集群”时,会根据上下文指高可用或分片集群。
- GeoDNS:根据用户所在地域返回更近的机房地址,是多地域路由的第一层。
- 应用层路由:请求进入服务后,再由程序根据用户、地域、健康状态选择目标机房,是 GeoDNS 的补充。