linux企业实战-网络架构

网络架构演化发展历史

初始阶段的网站(特点:没人)应用程序、数据库、文件都在一个服务器

应用程序,文件,数据库都部署在一台服务器上,通常是使用LAMP(Linux Apache MYSQL PHP)

应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求:性能越来越差,存储空间不足。这就需要应用和数据分离

使用缓存改善网站性能

网站访问的特点遵循经典的二八定律:80%的业务访问集中在20%的数据上所有把这一小部分数据缓存在内存中就能减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能。

网站使用的缓存可分为两种。在应用服务器上的本地缓存和在分布式缓存服务器上的远程缓存。

缓存技术:

内容分发网络(CDN)反向代理

本地缓存 分布式缓存

使用前提:

数据访问热点不均衡

数据在某个时间段有效,不会很快过期

远程分布式缓存使用集群,而且可以使用安装了大内存的服务器作为专门的缓存服务器。

使用缓存后,数据库的访问压力得到缓解,但单一的应用服务器能够处理的请求连接有限,所以在网站访问的高峰期,有可能成为整个网站的瓶颈。

通过负载均衡调度服务器,可以将用户的访问请求分发到应用服务器集群中的任何一台服务器上。如果有更多的用户,我们就可以在集群中加入更多的应用服务器。

数据库的读写分离

使用了缓存后,使得绝大对数数据的读操作可以不通过数据库就能完成。但仍然有部分的读操作(因为缓存访问没有命中或缓存过期)和全部的写操作需要访问数据库,所以在用户量达到一定规模时,数据库还是会因为负载过高而成为瓶颈。

目前的主流数据库度提供了主从热备功能,可以通过配置两台数据库的主从关系,把一台数据库服务器的数据同步到另一台服务器上。我们可以利用这个功能,实现数据库的读写分离,进一步提高数据库的负载能力

使用反向代理和CDN 的加速网站响应

网站的访问延迟与用户的流失率正相关。因为网站访问的越慢,用户就越容易失去耐心而离去

反向代理和CPU都是依赖缓存。区别是,CDN是部署在网络供应商的机房,用户请求读取时,会从距离他最近的网络供应商机房

获取数据;而反向代理部署在网站的中心机房,所以用户请求服务式,会先访问反向代理服务器,如果它缓存着用户所请求的资源,就会直接把资源返回给用户。

使用反向代理和CDN的目的都是为尽早地把数据返回用户,这样不仅加快用户的访问数据,而且也减轻了后端服务器的负载压力。

 

使用分布式文件系统和分布式数据库系统

如果之前的架构仍然不能满足需求,那么就要使用分布式的文件系统和数据库系统。

注意:一般情况下是对业务数据进行分库,即将不同业务的数据库部署到不同的物理服务器上只用在单表的数据规模非常庞大,才使用分布式数据库。

 

业务拆分

为了应对日益复杂的业务场景,通常使用分而治之的手段,把业务划分为不同的产品线。

每个应对堵路部署维护,应用之间通过超链接建立关系,也可以通过消息队列进行数据分发,更通常的做法是通过访问同一个数据村塾系统来构建一个完整的关联关系。

分布式服务

随着业务被拆分的越来越小,存储系统变得越来越小,应用系统的整体复杂度成指数级增长,部署和维护变得越来越困难。

可以把一些公用的服务提取出来,独立部署而应用系统只需要管理用户界面,然后通过分布式服务调度公用的服务,来3完成业务操作。

发布了78 篇原创文章 · 获赞 14 · 访问量 1756

猜你喜欢

转载自blog.csdn.net/qq_41871875/article/details/104370426
今日推荐