前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【精华篇全集整理】系统设计系列总结版

【精华篇全集整理】系统设计系列总结版

原创
作者头像
小诚信驿站
发布2022-04-17 17:08:32
2.7K0
发布2022-04-17 17:08:32
举报

本系列文章都已首发腾讯云+社区。

一、系统设计考察第一项:背景精简阐明

当你在面对系统设计无论是面试官考察,亦或者是自己设计系统的时候,需要考虑如下几点内容:

● 现状痛点描述清楚

● 核心模块(抽象模块以及核心指标是为了解决痛点,并且平衡取舍后的最合适方案)

● 系统设计规模粗略估算(系统规模、多少存储空间、网络带宽使用情况)

● 定义数据模型(抽象建模-实体、属性、联系)以及选择合适的数据库

● 高级设计(端到端的核心系统模块设计)

● 详细设计(如何做的负载,哪一层加的缓存,热数据、数据库表如何设计存储)

● 识别和解决技术难点(单点故障、容灾、副本备份、多活、监控等)

● 归纳总结(可扩展点以及更深的思考)

二、系统设计考察第二项:经典案例项目

2.1、系统设计概览

《系统设计考虑要点》

2.2、系统设计系统实践篇

2.2.1、设计短链服务

《系统设计:URL短链设计·案例参考分享邀请链接或者加密链接邀请》

2.2.2、设计粘贴复制技术

《系统设计:粘贴复制设计》

2.2.3、设计照片共享服务

《系统设计:照片共享设计·案例参考微博或者小红书等内容共享》

2.2.4、设计文件托管服务

《系统设计:文件托管服务设计·案例参考Github或者码云》

2.2.5、设计即时消息服务

《系统设计:即时消息服务设计·案例参考QQ或者微信通讯服务》

2.2.6、设计社交网络服务

《系统设计:社交网络服务设计·案例参考Twitter或者微博》

2.2.7、设计视频共享服务

《系统设计:视频共享服务设计·案例参考YouTube或者B站等》

2.2.8、设计实时预测服务

《系统设计:实时预测服务设计·案例参考搜狗输入法预测或者百度搜索预测》

2.2.9、设计API限流服务

《系统设计:API限流器设计·案例参考各个公司的网关限流系统》

2.2.10、设计搜索服务

《系统设计:搜索服务设计·案例参考谷歌百度必应搜狗等》

2.2.11、设计网络爬虫服务

《系统设计:网络爬虫服务设计》

2.2.12、设计Feed流服务

《系统设计:Feed流服务设计·案例参考Facebook新闻流》

2.2.13、设计附近人搜索服务

《系统设计:附近人和地点服务设计·案例参考Yelp或者大众点评》

2.2.14、设计人物匹配后端服务

《系统设计:附近人和物匹配服务设计·案例参考Uber或者滴滴》

2.2.15、设计在线售票服务

《系统设计:在线售票服务设计·案例参考携程或者飞猪》

2.3、大型系统设计模块组件

当我们设计一个大型系统时,我们需要考虑以下几点:

1.可以使用哪些不同的建筑构件?

2.这些部件如何相互配合?

3.我们如何最好地利用这些部分:什么是正确的权衡?

在需要之前投资于扩展性,通常不是明智的商业主张;然而,对设计进行一些前瞻性的思考可以在将来节省宝贵的时间和资源。在接下来的章节中,我们将尝试定义可伸缩系统的一些核心构建块。熟悉这些概念将大大有助于理解分布式系统的概念。在下一节中,我们将介绍一致性哈希、CAP定理、负载平衡、缓存、数据分区、索引、代理、队列、复制,以及在SQL和NoSQL之间进行选择。

2.3.1、分布式系统的关键特性

《系统设计面试:分布式系统的关键特性》

2.3.2、负载均衡

《系统设计面试:负载均衡》

2.3.3、缓存

《系统设计面试:缓存》

2.3.4、数据分区

《系统设计面试:分片或者数据分区》

2.3.5、索引

《系统设计面试:索引》

2.3.6、代理&冗余&复制

《系统设计面试:代理&冗余&复制》

2.3.7、SQL VS NoSQL

《系统设计面试:SQL VS NoSQL》

三、系统设计考察第三项:系统设计面试

3.1、系统设计过程

3.1.1、约束和用例

与面试官谈特定场景,明确范围约束,以及我们应该如何制定用例验证

3.1.2、抽象本质

通过范围约束,以及用例验证,需要看清抽象的背后本质是什么?并进行建模画图

3.1.3、系统瓶颈

明确系统的扩展性,对于业务复杂性来说,更多场景我们要考虑的是其服务定位是什么?然后再以业务和技术作为底层驱动来判断我们的系统高可用、高性能、高扩展、高安全如何构建高并发系统,还需要考虑的是基于当前业务复杂度和技术复杂度前提下,如何权衡效率-成本-质量。

3.1.4、可扩展性设计

● 垂直缩放

● 水平缩放

● 缓存

● 负载均衡

● 数据库复制

● 数据库分区

系统设计系列到此先告一段落、后面会开启架构师系列、和业务中台建设系列。如果你也对这些感兴趣,可以加我(VX:lxc354555)一起成长。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、系统设计考察第一项:背景精简阐明
  • 二、系统设计考察第二项:经典案例项目
    • 2.1、系统设计概览
      • 2.2、系统设计系统实践篇
        • 2.2.1、设计短链服务
        • 2.2.2、设计粘贴复制技术
        • 2.2.3、设计照片共享服务
        • 2.2.4、设计文件托管服务
        • 2.2.5、设计即时消息服务
        • 2.2.6、设计社交网络服务
        • 2.2.7、设计视频共享服务
        • 2.2.8、设计实时预测服务
        • 2.2.9、设计API限流服务
        • 2.2.10、设计搜索服务
        • 2.2.11、设计网络爬虫服务
        • 2.2.12、设计Feed流服务
        • 2.2.13、设计附近人搜索服务
        • 2.2.14、设计人物匹配后端服务
        • 2.2.15、设计在线售票服务
      • 2.3、大型系统设计模块组件
        • 2.3.1、分布式系统的关键特性
        • 2.3.2、负载均衡
        • 2.3.3、缓存
        • 2.3.4、数据分区
        • 2.3.5、索引
        • 2.3.6、代理&冗余&复制
        • 2.3.7、SQL VS NoSQL
    • 三、系统设计考察第三项:系统设计面试
      • 3.1、系统设计过程
        • 3.1.1、约束和用例
        • 3.1.2、抽象本质
        • 3.1.3、系统瓶颈
        • 3.1.4、可扩展性设计
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档