互联网架构技术演进

目录

一、互联网架构演进

1. web1.0阶段

2. web2.0阶段

3. 单体阶段

4. 原始服务分离架构

5. 缓存架构

6.集群架构 

7. 数据库读写分离架构

8. 数据库分库分表

9. 搜索引擎架构

10. 微服务架构

11. 一个简化版的互联网架构

二、架构演进的一点想法

1. 用户规模的快速增长

2. 业务场景的快速丰富


一、互联网架构演进

1. web1.0阶段

用户通过浏览器访问网站服务器,往往服务器上的资源是静态的,仅仅包含html、js、css等内容,没有和用户进行交互,都是单向的,这是web1.0里面常见的模式。整个架构如下图所示:

互联网架构技术演进_第1张图片

 

2. web2.0阶段

到了web2.0,上面的架构中引入了数据库,用户和服务器之间有了一定的交互,用户可以增加删除和修改一些数据,这些数据存储在数据库里面,架构如下:

互联网架构技术演进_第2张图片

3. 单体阶段

提供了一台服务器,服务器里面会部署我们的javaweb程序,数据库服务、文件服务。

互联网架构技术演进_第3张图片

4. 原始服务分离架构

随着用户规模的提升,单体服务器的性能瓶颈越来越严重,不管是数据库,还是文件服务器,性能都越来越乏力,无论是cpu,网络、io都吃不消,同时单体服务一旦宕机,服务器不可访问,整个服务架构演变为网站服务器、文件服务器、数据库服务器。这是最初的分离模式,实现了单体服务的降压。如图:

互联网架构技术演进_第4张图片

5. 缓存架构

随着时间的推移,用户数量大规模的增加,访问请求越来越多,数据库的压力越来越大,用户的访问越来越慢,体验越来越不

好,这个时候就引入缓存中间件。架构如图:

互联网架构技术演进_第5张图片

6.集群架构 

上面为止,所有的部署都是单节点部署,一旦其中一个节点宕机,那么用户是无法访问的,对企业来说是具有毁灭性影响的,并且单节点部署还是有很严重的性能问题,于是引入集群与负载均衡的架构,架构如图:

互联网架构技术演进_第6张图片

7. 数据库读写分离架构

到目前为止除了大部分的请求落入到缓存,但是还有一部分请求的读写落入到数据库上,数据库很快成为整个服务的瓶颈,于是引入了数据库的读写分离架构。如图所示:

互联网架构技术演进_第7张图片

8. 数据库分库分表

虽然做了读写分离,但是大型网站的业务还是会急剧增长,如果数据库扛不住了,这个时候可以进行分库分表,一般来说,当数据库单表达到800万左右,就开始考虑分库分表了。如图所示:

互联网架构技术演进_第8张图片

9. 搜索引擎架构

随着网站的进一步发展,用户对于检索的要求也多样化,特别是模糊查询,数据库可能满足不了用户的需求,并且如果在数据库中进行查询的话,会对数据库造成一定的压力,所以这个时候会引入相应的搜索引擎,比如solr或者es。如图所示:

互联网架构技术演进_第9张图片

10. 微服务架构

大型网站的业务通常非常复杂,这个时候,需要将复杂业务拆分成小的产品线,比如电商系统,这个就是微服务阶段,如图所示:

互联网架构技术演进_第10张图片

11. 一个简化版的互联网架构

互联网架构技术演进_第11张图片

二、架构演进的一点想法

在之前的架构演进中,明显有着两条主线:

1. 用户规模的快速增长

网站的架构不断的演进。随着大型互联网公司越来越多,用户群体规模已经达到了最大,像微信、淘宝这类公司,用户规模再上升已经非常困难了,而且支撑大规模用户的架构趋于成熟,相关的架构技术也不断在独角兽相关的公司开始普及。而这个时候大公司开始着重已有成熟架构的优化,比如微服务架构的优化方向上产生了新一代的ServiceMesh架构。

2. 业务场景的快速丰富

网站架构也不断演进。刚开始的web1.0只支持静态页面资源访问,而且是单向的服务,后来诞生了用户交互相关的需求,多媒体相关的需求,用户访问性能方面的需求,但是目前网站上依然是一大堆静态的资源。下一阶段,随着webGL、VR等技术的发展,互联网会呈现出用户更多的需求。比如目前在淘宝上买东西,依然是以图片、视频等静态资源的形式进行访问的,以后用户可以随意旋转物体,360度无死角的拖动旋转,如同玩游戏一样,不在需要图片的形式进行展现,直接以动态模型的形式进行展现。

你可能感兴趣的:(互联网架构)