写点什么

第四周 系统架构 作业 「架构师训练营 3 期」

用户头像
feiyun123
关注
发布于: 2020 年 12 月 19 日

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



主要使用了两种技术方案:一个是垂直伸缩方案,主要手段是通过增加和扩展服务器硬件配置提升计算处理能力;一个是水平伸缩方案,主要手段是通过增加服务器、调整软件技术架构来提升计算处理能力。

主要解决的是由于用户量不断增加,带来的高并发的访问和请求压力问题。

目前互联网应用系统解决高并发的压力和请求主要是使用水平伸缩的解决方案。

水平伸缩中主要的技术和手段有:

1、应用数据分离。分别由文件服务器、应用服务器、数据库服务器组成的简单服务器集群,每台服务器处理单一的职责功能,这样在单一服务器基础上大概提升三倍计算处理能力。

2、使用缓存改善系统性能。由于硬盘的访问速度比较慢,将高访问量的数据放在内存中,提供缓存服务,节省计算处理能力提升整体系统性能。

3、使用应用服务器集群。使用应用服务器集群改善系统的并发处理能力。

4、数据库读写分离。数据库的数据是储存在硬盘上,硬盘的访问速度慢,这个时候数据库的处理能力成为了整个应用服务处理的瓶颈,大量的请求需要等待数据库返回数据,这时使用数据库主从,将写和读操作进行分离,保证数据的一致性和提升了数据访问的速度。

5、使用反向代理和CDN加速网站响应。CDN作为网络运营商的缓存服务器,使用CDN服务将节省请求到网络运营商再到机房服务的时间,直接在CDN服务器查找是否有请求的资源进行返回,这样提升了访问速度降低了系统服务的访问压力。反向代理服务器作为应用服务器的前面一层,将部分内容缓存在反向代理服务器中,如果有缓存将直接返回,没有才继续向应用服务器传递下去,进行计算处理。CDN处理了大部分的请求,剩余的少部分请求到反向代理服务,在反向代理服务中又处理了大部分的请求,给到应用服务器的只剩余了很少一部分,这样极大的提高了应用系统的处理能力。

6、使用分布式文件系统和分布式数据库系统。在之前数据库只是做到了读写分离,大量写的操作还是只有一台数据库主服务器进行处理,使用分布式数据库,将大量的数据分片储存在不同的数据库,这样极大的提高了数据的读写访问能力。同样的文件系统也是的,将大量的文件分片储存在不同的文件服务器中,提高了文件的访问处理能力,从而整体提升了系统的处理能力。

7、使用NoSQL和搜索引擎。使用了分布式数据库后,虽然可以满足大量的读写操作,但是对模糊查询和特殊的复杂查询分布式数据库支持的不是很好,这样就要使用搜索引擎来满足更高要求的查询操作,使用NoSQL数据库来满足特殊的数据储存和查询操作。

8、对业务拆分。随着用户量的增加,业务也在不断发展,整体的业务逻辑开始变的繁杂,难以维护。为了保证代码的易维护性,这时就需要将整体的业务进行拆分,比如电商系统将业务拆分成用户、订单、商品等不同的业务系统,系统之间通过http、rpc、mq消息进行通信。

9、微服务及中台化。拆分成的业务系统都会有调用同一服务的情况,将公用的服务拆分出来,构建一个独立的微服务集群,各个微服务建立起来后可供相互调用,可供复杂的业务场景使用,提供了通用的服务调用,这样服务中台就建立起来了,新产品开发的时候只需要调用服务中台就可以了。

10、大数据与智能化。通过系统中大数据的分析和挖掘,提供更智能的服务。



用户头像

feiyun123

关注

还未添加个人签名 2019.09.28 加入

还未添加个人简介

评论

发布
暂无评论
第四周 系统架构 作业 「架构师训练营 3 期」