写点什么

架构师培训 -04 系统架构

用户头像
刘敏
关注
发布于: 2020 年 07 月 01 日

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



“高并发”是一个大型互联网应用系统的主要特征,要让这样一个系统能够给用户正常提供服务,系统就得具备高可用和高性能的能力。在现在高并发、高性能和高可用的处理上都有相对比较成熟的方案。

1.高并发

高并发是因系统用户访问而客观存在的问题,解决高并发的问题一般有两种方案:

  • 垂直伸缩:通过升级硬件和网络吞吐来提升系统支持高并发的能力。

优点:能够相对快速的完成支持高并发的能力。在一定规模下耗费的成本也相对低。

缺点:无论硬件配置多么高,对于大规模的并发来说有时候都是无法满足的。



  • 水平伸缩:通过添加服务器提升系统支持高并发的能力。

优缺点刚好跟垂直伸缩相反。

优点:能够通过添加服务器数量满足大规模并发的场景。

缺点:扩展速度慢,往往都需要架构重构,重新开发来实现,无法满足应急的情况。

2.高性能

高性能是满足用户体验的一个重要指标。在解决高性能的问题在软件的各个层级都有体现。

  • 前端

CDN:将用户访问的数据(静态页面和图片之类的)放置到离用户更近的地方,减少网络访问时间,从而提供访问的效率。

动静分离:将静态资源与动态数据分开在不同的服务器来处理,从而达到提高性能的目的。同时静态资源也方便使用缓存来处理。



  • 网关及应用层

负载均衡:负载均衡可以请求分派给不同的服务器进行处理,减少单台服务器的请求量,从而达到提供性能的目的。

动态页面静态化:例如商品详情这种动态页面,可以通过模板之类的技术,将每个商品的详情页面静态化通过存放到CDN,缓存等能够加速访问的手段达到提高系统性能。

业务拆分:通过拆分业务,将拆分出来的业务部署到不同的服务器,从而使流量分散到不同的服务器上,达到提升性能的目的。

  • 服务层

微服务框架:同上面业务拆分道理一样。

分布式缓存:缓存是提升性能中最主要的手段之一。通过减少磁盘读写和复杂处理过程来快速响应用户需要的数据。

  • 存储层

分布式文件:通过更多的服务器来分摊流量,达到提升性能的目的。

NOSQL数据库:NOSQL数据库有些是基于内存来存储数据的,处理速度非常快。

  • 后台架构层

搜索引擎:利用搜索引擎解决了关系型数据库模糊查找非常慢的问题,在这种场景下大大的提高了查找数据的性能。



总结:从上面不同层面上提升性能的方案中大概可以总结为两点:分割和缓存。

3.高可用



系统高可用的主要手段是冗余。

应用程序:主要通过集群部署来做到高可用,同时结合一些类似ureka注册组件来自动剔除不可用的节点。

数据:将数据存储在多台服务器上互相备份,任何一台服务器宕机都不会导致数据丢失。mysql常用的就是准备。hdfs,es等通过数据分片+副本的方式进行存储。



用户头像

刘敏

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师培训 -04 系统架构