[TOC]
思考的维度
- 明确需求,确定核心功能和非核心功能
- 容量估算,比如用户数,qps,读写比例,DB存储容量,网络带宽
- 架构设计,确定有什么模块,服务的定位和功能,DB,缓存,MQ,与外部服务的交互,API与通信协议,
- 针对某一个模块深入思考细节
- 扩展设计,需要考虑可靠性、可扩展性、安全性、成本等方面
参考
https://github.com/ByteByteGoHq/system-design-101
https://github.com/checkcheckzz/system-design-interview
https://github.com/ashishps1/awesome-system-design-resources
https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md