架构师训练营第四周命题作业

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

大型互联网应用系统技术方案与手段

1 概述

相较于传统软件应用系统,互联网应用系统面临很多不同的挑战。如高并发、高可用、海量数据存储、用户分散且网络情况复杂、安全环境恶劣等。为了应对这些发展中遇到的问题,很多技术应运而生。

一个典型的大型互联网应用系统架构会包含如下部分:

  • 前端架构

  • 网关及应用层架构

  • 服务层架构

  • 存储层及后台架构

接下来会对上述各个部分进行详细介绍。

2 前端架构

前端架构通常包括从浏览器,基于互联网的应用程序与网站,以及请求抵达应用服务器之前的部分。

当用户用通过应用或网站发起HTTP请求时,域名系统(Domain Name System, DNS)服务器可以根据用户所在位置将域名解析为更适合用户的内容分发网络(Content Delivery Network, CDN)服务器。其中CDN服务器本质上是一个靠近用户端的缓存,并将经常被访问、相对静态的内容存储下来,当用户请求的内容包含在CDN服务器中时便可以直接返回,从而节省应用服务器与数据库资源,同时为用户提供更快捷的体验。当涉及到一下CDN中没有存储的内容时,请求会被继续发送到反向代理(Reverse Proxy) 服务器,反向代理服务器会通过一些逻辑返回下一个阶段的服务器地址。

3 网关及应用架构

网关及应用架构主要包括应用服务器集群,并通过负载均衡服务器进行调度。

当用户的请求到达这层时,负载均衡服务器会根据集群中应用服务器的状态选取一个合适的服务器来响应请求,从而避免单一服务器在高并发时的阻塞问题。同时在此也可以进行业务拆分,根据用户请求的内容分配到相应业务的所在集群,然后从中选取合适的应用服务器响应请求。

当用户的请求到达这层时,负载均衡服务器会根据集群中应用服务器的状态选取一个合适的服务器来响应请求,从而避免单一服务器在高并发时的阻塞问题。同时在此也可以进行业务拆分,根据用户请求的内容分配到相应业务的所在集群,然后从中选取合适的应用服务器响应请求。

4 服务层架构

服务层架构通常包括一些可以由应用服务器公用的模块组成,如微服务、消息队列、缓存等。

其中消息队列负责上层应用服务器之间的通信,诸如用户系统、分布式缓存等一些基础设施可以设计为微服务,提高重用。使用微服务的系统职责划分更加清晰,便于维护和扩展,提高系统的可用性。

5 存储层及后台架构

存储层及后台架构包括文件系统和数据库,以及搜索引擎等模块。

其中分布式文件系统可供存储海量数据。数据库可以根据需求进行读写分离、冷热分离等方式进行性能提升。

6 其他

安全架构是系统中另一不可或缺的组成部分,即使在系统规模十分小的时候,安全架构也很重要,并伴随系统一同发展和完善。在将各个模块拆分到各个服务器时,要考虑到服务器的可见范围,不将访问权限过度开放。此外还有异常分析,备份关键日志,建立互联网应用防火墙(Web Application Firewall, WAF)等。各个安全模块共同作用以保证系统的数据安全和高可用性。

数据采集与监控也是系统中十分重要的一环,将整个系统各个模块的运行情况、业务数据统计集中进行监控,当出现问题时可以及时做出响应,以保证系统的高可用性。

7 总结

综上,一个典型的大型互联网应用系统如下。



发布于: 2020 年 07 月 01 日 阅读数: 38
用户头像

whiter

关注

还未添加个人签名 2020.05.29 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第四周命题作业