网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
这部分内容主要参考了Github的一个国外的开源项目,写的很好,感兴趣的小伙伴可以去看看:https://github.com/donnemartin/system-design-primer
常见的系统设计题有设计一个秒杀系统、红包雨、URL短网址等,完成一个系统设计题大概需要分为四步。
需要注意的是,在面试过程中是比较紧张的,但遇到这种系统设计题,一定先不要急着回答,一定要先需要设计系统的一些使用场景。
1.第一步:像面试官不断提问,搞清楚系统的使用场景
系统的功能是什么
系统的目标群体是什么
系统的用户量有多大
希望每秒钟处理多少请求?
希望处理多少数据?
希望的读写比率?
第二步:创造一个高层级的设计
2. 画出主要的组件和连接例如设计一个网络爬虫,这个是个完整的架构图,在这一步只需要画出一个抽象的架构图即可,不需要这么具体。
3. 设计核心组件
对每一个核心组件进行具体地分析。例如,面试官让你设计一个url短网址,你需要考虑这些问题
- 生成并储存一个完整 url 的 hash
- MD5和 Base62
- Hash 碰撞
- SQL 还是 NoSQL
- 数据库模型
- 将一个 hashed url 翻译成完整的 url
- 数据库查找
- API 和面向对象设计
4. 对系统进行优化
找到系统的瓶颈所在,对其进行优化,例如可以考虑水平扩展、数据库分片等等。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版