[架构师训练营第 1 期] 第四周命题作业

用户头像
猫切切切切切
关注
发布于: 2020 年 10 月 11 日

题目



一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

成果

一个典型的大型互联网应用系统使用的技术方案和手段包括:

  • 应用与数据分离:就是将应用服务、文件服务、数据库服务三者部署到不同的服务器上。

主要是为了解决:应用服务与其它服务在同一台服务器上的资源竞争问题。

  • 本地和远程缓存:就是在应用服务器上部署本地缓存,同时部署一台专门的缓存服务器。

主要是为了解决:应用服务在运行过程中重复计算而导致的资源浪费问题。

  • 应用服务器集群:就是将应用服务部署到多台服务器上,同时前置一台负载均衡服务器。

主要是为了解决:单个应用服务在接收高并发流量时系统响应变慢的问题。

  • 数据库读写分离:就是在不同服务器上分别部署主从数据库,写操作向主,读操作向从。

主要是为了解决:读写一体的数据库读写操作竞争时系统响应变慢的问题。

  • CDN和反向代理:就是使用CDN代理外部静态资源请求,用反向代理内部静态资源请求。

主要是为了解决:静态资源访问与业务操作请求竞争使系统响应慢的问题。

规模越大的互联网应用系统,其静态资源访问流量可以占到总流量的 90% 以上。

这意味着使用 CDN 和反向代理后,只有不到 10% 的流量会抵达应用服务器(集群)。

  • 数据库分布式化:就是将数据库进行分表或分片,再将分表或分片部署到不同的服务器。

主要是为了解决:

  • 单个数据库的表数据量存在上限的问题。

  • 单个数据库处理高并发读写操作使系统响应变慢的问题。

  • 文件系统分布式:就是将文件系统进行分区或分块,再将分区或分块部署到不同的服务器。

主要是为了解决:

  • 单个文件系统存储空间存在上限的问题。

  • 单个文件系统处理高并发读写操作使系统响应慢的问题。

  • 使用 NoSQL 和搜索引擎:就是在系统中部署专门的 NoSQL 服务器和搜索引擎服务器。

主要是为了解决:存储数据量较大时查询能力不足使系统响应变慢的问题。

  • 业务拆分:就是将应用服务中的业务拆分成一个个服务,部署到不同的服务器(集群)。

主要是为了解决:

  • 业务越来越丰富和多样化导致应用系统过于庞杂的问题。

  • 单个业务流量较大时业务资源竞争使系统响应慢的问题。

  • 微服务:就是在业务拆分的基础上,提取出公共的服务,部署到不同的服务器(集群)。

主要是为了解决:业务重复开发导致的成本问题。

发布于: 2020 年 10 月 11 日 阅读数: 19
用户头像

猫切切切切切

关注

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营第 1 期] 第四周命题作业