系统设计
这块面试考什么
- 需求与容量:先区分功能目标和非功能约束,再估算资源需求,解释系统边界与架构选择之间的关系。
- 缓存与节点协作:从单机缓存推演到多机服务,讨论节点管理,以及主节点和跟随节点如何协作。
- 消息队列与网络接口:说明队列在架构中的位置,比较 HTTP、RPC 等通信方式,并讲清请求的数据传输过程。
- 数据库选择:比较关系型存储与不同类型的 NoSQL,围绕事务及分布式约束解释选择理由。
- 社交与多媒体服务:围绕信息流、视频上传和即时消息,讨论推拉模式、流媒体架构与连接方式。
- 位置搜索与索引:根据位置服务的范围选择空间组织方式,说明地理编码、数据存储和索引如何配合查询。
- 日志与文件存储:解释实时日志与延迟日志的处理路径,讨论分布式文件系统的读写流程及节点职责。
- 支付、库存与协同编辑:用业务场景展开接口、库存扣减及冲突处理的设计,讲清每种方案要处理的细节。
用 GoInterview 怎么练
- 练设计的口头推演:官网列出了系统设计口头表达的练习场景;模拟面试时参考答话思路,自己按需求、资源和方案取舍的顺序讲述。
- 边看提示,边组织方案:GoInterview 的建议显示在独立提示面板里。练习时参考面板,自己解释缓存、队列与存储之间的关系。
- 练英文架构讨论:听题语言和答话语言可以分开设置;用英文听题、英文答话练习架构讨论,界面可保持中文。
想要真人带
想要真人老师带着练系统设计?可以看看上岸算法的相关内容。