架构师训练营 -week4- 作业

发布于: 2020 年 06 月 30 日
架构师训练营-week4-作业

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

大型互联网应用系统特点:用户量大、访问量大、高读低写、7*24小时运行

1、缓存技术

互联网应用系统的访问都是大多是读操作(例如:淘宝-浏览商品,智联-浏览招聘广告等),使用缓存技术来缓存热门数据,优先从缓存中读取热门数据,可降低大量读操作给数据库带来的压力。

2、 应用集群

大型互联网应用系统都有巨大的用户量,然而应用服务器的处理并发的能力是有限的,因此为避免因并发量有限导致用户的访问请求无法被处理,可通过增加应用服务器数量,对应用服务器进行集群改善系统的并发处理能力。

3、读写分离

基于缓存数据库、应用服务器集群的方案,数据库的写操作还是不可避免的,在这个过程中,还要叠加缓存失效带来的大量读操作。再者因为数据库消耗的是硬盘资源,而磁盘资源的读写速度低于CPU的读写速度,所以在高并发的加持下,数据库依旧不稳定。为了解决这个问题,使用数据库读写分离主从复制技术,使数据有多个备份,减轻单个数据库的负载压力。

4、 反向代理、cdn

互联网应用系统,顾名思义得上网才能访问。不同于本地桌面软件,访问互联网应用系统的页面时,得下载js、html、css等静态资源。当用户访问量大时,这些静态资源将会占用大量的带宽,对于大型互联网公司的核心机房来说是个很大的负担,降低对访问的响应。为了解决这个问题,使用反向代理和cdn技术,使用户的访问请求中需要的静态文件就近下载,核心机房仅返回关键数据即可。

5、 分布式数据库/文件系统

当数据库单表数据过大,单纯的读写分离/主从复制技术无法解决数据库的压力时,使用分布式文件系统、分布式数据库系统,将表数据进行分片。

6、 NoSQL数据库、搜索引擎

针对一些无事务性、且数量大的数据库或冷数据(例如:淘宝-历史订单;支付宝-历史支付信息等),可将这类型数据转至NoSQL数据库或搜索引擎,以降低数据库的读压力。

7、 业务拆分

当系统的业务复杂到一定的程度,一个技术团队无法有序地维护系统时,需对业务进行拆分,以业务为中心拆分技术团队,每个子团队维护一个子业务。

8、微服务、中台服务

将系统的公共基础组件,抽离出来形成高可用的微服务,使调用服务的子系统可不再维护公共组件,模块、子系统之间的关系更清晰。

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

晓-Michelle

关注

还未添加个人签名 2020.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-week4-作业