分层架构简图

分层架构

分层架构简图_第1张图片

代理层

作用:这个层面也可以叫做缓存层,用以减轻后端服务器数据及存储压力

实现方式:

  • 目前大多数企业都会选择使用CDN的方式进行静态资源的缓存和代理,CDN是一种组合技术,其中包括数据回源,缓存服务器,智能DNS等几个重要部分组成

  • 自建代理服务器,一些超大规模公司可能会考虑到风险问题实行自建加购买服务结合,可以通过squid、NGINX、cache来做小型达到DNS加速的作用。

  • 我们可以通过自己建设cache缓存层,对购买的CDN提供数据源服务,可以用的软件有varnish、nginx、squid等cache缓存软件,以减轻以减轻静态数据层的压力。我们也可以架设DNS服务器,达到跨机房业务拓展及智能解析的目的。

负载均衡层

作用:

​ 建立在现有网络结构之上,提供一种廉价有效透明的方法扩展网络设备和服务器带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

常见实现方式:

  1. HTTP重定向负载均衡

  2. DNS域名解析负载均衡

  3. 反向代理负载均衡

  4. IP负载均衡

  5. 数据链路层负载均衡

常用软件:

  1. LVS

  2. NGINX

  3. HAProxy

动静分离

作用:

  1. 让静态的资源只走静态资源服务器,动态的走动态的服务器

  2. 让程序上将不经常发生改变的内容静态化,经常变化的内容动态化,实时显示或者是一段时间变化显示

  3. 让运算资源文件(php,aspx,jsp)等与静态资源文件(jpg,png,css,js)走不同的文件

实现思路:

  动静分离主要从三个方去看:
  1.服务器
  2.程序
  3.文件
  ​
  在服务器层面:为静态资源准备专门的服务器,调优参数,与动态资源服务器分开。让静态资源分布在全国不同的服务器上(DNS),就近缓存到最近的服务器上。不再请求原有的真实的服务器,分担源服务器的压力。提高就近访问的速度。
  而动态内容,反向拉取即可。
   
  程序层面:让一次数据没有变化,查询没有变化的时候。属于将文件静态化了,一段时间不发生变化。 一个文章没有修改, 直接存于缓存。一个发布,不需要修改的,直接写成.shtml文件。我们都可以称之为临时静态化或者是持久静态化。
   
  文件层面:将静态资源放至专门的域名,header头中不发送cookie等信息。静态文件,单独存储,静态文压缩发送。

目的:

  • 提升资源的利用率

  • 加快用户反问速度

数据缓存层

目的:加快读取数据的速度,提高数据库反问的效率

常常使用NOSQL数据库软件作为缓存数据库

常用软件如下:

  1. memcaceh

  2. Redis

  3. Ehcache

数据库集群层

目的:较低成本的情况下获得在 性能、可靠性、灵活性方面的相对较高的收益

技术点:

  1. 主从复制

  2. 读写分离

    • 读写分离实现方式:

      • 通过业务代码逻辑实现

      • 通过中间插件实现

 

 

该文档由个人总结所得,如有不足还请见谅及补充

你可能感兴趣的:(资源整合)