系统设计
软件架构
关于设计大规模系统所需了解的一切。
19 个阶段
61 个技能
系统化的学习路线,从基础到进阶,循序渐进掌握核心技能
1
安全技能和知识
核心技能点
什么是系统设计?
如何进行系统设计(System Design)?
2
性能 vs 可扩展性
阶段学习资源
4
可用性 vs 一致性
核心技能点
CAP 定理 (CAP Theorem)
阶段学习资源
5
一致性模式
核心技能点
弱一致性(Weak Consistency)
最终一致性(Eventual Consistency)
强一致性(Strong Consistency)
阶段学习资源
推荐资料
7
后台任务(Background Jobs)
核心技能点
事件驱动(Event-Driven)
基于计划的调度
返回结果
阶段学习资源
9
内容分发网络(Content Delivery Networks)
核心技能点
推送内容分发网络(Push CDNs)
拉式内容分发网络(CDNs)
阶段学习资源
10
负载均衡器
核心技能点
负载均衡器(Load Balancer)与反向代理(Reverse Proxy)对比
负载均衡算法
第7层负载均衡
第四层负载均衡 (Layer 4 Load Balancing)
水平扩展(Horizontal Scaling)
阶段学习资源
12
数据库
核心技能点
SQL 与 NoSQL
nosql (NoSQL)
关系数据库管理系统(RDBMS)
阶段学习资源
13
幂等操作(Idempotent Operations)
阶段学习资源
14
异步性(Asynchronism)
核心技能点
反压机制
任务队列
消息队列
阶段学习资源
推荐资料
- 面向微服务系统的异步思维(Asynchronous Thinking for Microservice System Design) article
- 微服务模式 - 同步 vs 异步(Sync vs Async) article
- 过载时应用后压(Applying back pressure when overloaded) article
- 利特尔定律(Little's law) article
- 消息队列和任务队列之间的区别是什么?(What is the difference between a message queue and a task queue?) article
- 这都是一场数字游戏(It's all a numbers game) video
15
缓存(Caching)
核心技能点
缓存策略(caching-strategies)
客户端缓存
内容分发网络(CDN)缓存
Web 服务器缓存
数据库缓存
应用缓存
阶段学习资源
16
通信
核心技能点
超文本传输协议(HTTP)
传输控制协议(TCP)
UDP (User Datagram Protocol)
远程过程调用(RPC)
REST (Representational State Transfer)
gRPC
GraphQL
17
性能反模式 (Performance Antipatterns)
核心技能点
繁忙的数据库
忙碌的前端
聊天式 I/O (Chatty I/O)
多余的获取
不当实例化
单体持久性(Monolithic Persistence)
无缓存
嘈杂邻居(Noisy Neighbor)
还有 2 个技能点
阶段学习资源
18
监控
核心技能点
健康监测
可用性监控
性能监控
安全监控
使用监控
仪器化(Instrumentation)
可视化与告警
阶段学习资源
19
云设计模式 (Cloud Design Patterns)
核心技能点
消息传递
数据管理
设计与实现
可靠性模式
阶段学习资源
职路APP - AI驱动的职业发展平台
个性化学习路径
基于AI算法生成专属的职业成长路径
职业测评
全面了解自己的职业兴趣和能力特长
智能简历
一键生成针对不同职位的专业简历
职位分析
深度解析职位要求,精准匹配能力