谈谈典型的互联网系统架构

2022-09-13 16:05:59 浏览数 (1)

前言

  典型的互联网架构是如何划分的呢?各个层次之间又有哪些可以进行优化的方案呢?下面通过文章一起看看吧。

典型互联网架构

  在认识水平拓展之前,先来看看典型的互联网系统架构是怎样的呢?如下图:

二: 如上图所示,常见的系统架构分层如下

  • 1、客户端层:  就是常见的浏览器、APP
  • 2、反向代理层:  此层用于反向代理和负载均衡,常见的软件:nginx,硬件F5
  • 3、前端应用层:  现在的系统一般是前后端分离并单独部署,此处属于前端项目
  • 4、服务层:  后端服务群,提供给前端项目调用
  • 5、缓存层:  介于服务层和数据库层之间,通过缓存,减少IO次数、提高吞吐量和响应速度
  • 6、数据库层:  实际的数据存储区域,可以进行读写分离,通过binlog日志进行同步数据。

三: 不同层级的水平拓展,提高系统并发能力

1、针对客户端层优化

  此处的逻辑主要是用户通过域名访问应用,但是在访问前,需要通过DSN进行域名和IP地址的转换。

  优化方案:利用DNS负载均衡,给同一个域名配置多个IP地址,在应答的时候,DNS会对每个查询按DNS中配置的IP地址顺序返回,从而将客户端引导到不同的服务器上。

  CDN(Content Delivery Network)内容分发网络也是利用DNS的重定向技术,DNS会返回一个离用户最近的IP地址作为响应,CDN节点的服务器负责响应用户的请求,提供所需的内容。

2、反向代理层优化

  如果反向代理层成为了性能的瓶颈时,可以通过添加新服务器,安装新的反向代理来水平拓展反向代理的性能(如果是使用硬件的话,则需要购买新的硬件),理论上来说可以承受无限制的并发量。

3、前端应用层优化

  前后端的项目分离部署,将前端项目部署到处理静态文件更好的服务器(如nginx处理静态文件的效率就远大于tomcat服务器)这本身就是对性能的一种优化,同时,也降低了系统的耦合性。

  同时,前端层面也可以在代码层级做性能优化,如缓存条件,如果界面界面切换时条件没有改动,可以直接读取之前的数据,不再向后端发起请求。

4、服务层优化

  前端应用层通过RPC远程调用服务,当性能成为瓶颈时,可以添加服务器数量,将服务部署到新机器中,理论上来说,可以兼容无限制的并发(可以使用如euraka注册中心这种自动注册和发现的组件来实现服务层自动扩容)。

5、缓存层优化

  缓存层本身就是使用”空间换时间”的方式来提高系统的效率和吞吐量,如果缓存层因为数据量出现性能瓶颈时,可以添加新的服务器来实现水平拓展。

6、数据层的优化

  当系统数据量上升,单机性能达到瓶颈时,可以添加新的机器,通过读写分离,数据水平拆分存储到不同服务器来提高系统的性能。

写在最后

  经验就是一个积累的过程,没有谁能够一步登天,所以脚踏实地才是成功的秘诀。

0 人点赞