系统设计考点解析

1.什么是系统设计?

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


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

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


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

使用场景和限制条件

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

数据存储设计

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

算法模块设计

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

延伸

扩展

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

容错

故障如何处理?单点失败、多点失败、雪崩问题?
相关文章
相关标签/搜索