系统设计考点解析

1.什么是系统设计?

系统设计是一个定义系统架构、模块、接口和数据满足特定需求的过程
比如设计一个短网址服务、评论服务、feed流系统、抢红包系统 秒少系统
微服务架构很多系统被按照业务拆分,需要单独设计一个系统服务


2.系统设计需要掌握哪些知识?

熟悉后端技术组件,比如消息队列 缓存 数据库 框架
具备文档撰写 流程图绘制 架构设计 编码实现等综合能力


3.系统设计怎么答?(三要素)

使用场景和限制条件

使用场景
限制条件--用户估计 并发qps

数据存储设计

需要设计数据表 字段 类型
数据库选项--是否需要持久化?使用关系型还是NoSQL?
如何优化?何如设计索引?是否可以使用缓存?

算法模块设计

需要哪些接口?接口如何设计?
使用什么算法或者模型?
不同实现方式之间的优劣对比,如何取舍?

延伸

扩展

用户多了,qps高了如何如理?
数据存储多路不够存了如何处理?

容错

故障如何处理?单点失败、多点失败、雪崩问题?

相关推荐