系统设计是一个定义系统架构、模块、接口和数据知足特定需求的过程
好比设计一个短网址服务、评论服务、feed流系统、抢红包系统 秒少系统
微服务架构不少系统被按照业务拆分,须要单独设计一个系统服务算法
熟悉后端技术组件,好比消息队列 缓存 数据库 框架
具有文档撰写 流程图绘制 架构设计 编码实现等综合能力数据库
使用场景 限制条件--用户估计 并发qps
须要设计数据表 字段 类型 数据库选项--是否须要持久化?使用关系型仍是NoSQL? 如何优化?何如设计索引?是否能够使用缓存?
须要哪些接口?接口如何设计? 使用什么算法或者模型? 不一样实现方式之间的优劣对比,如何取舍?
用户多了,qps高了如何如理? 数据存储多路不够存了如何处理?
故障如何处理?单点失败、多点失败、雪崩问题?