架构师训练营 1 期第 4 周:系统架构 - 作业
题目:一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
互联网架构模式就是试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用重复使用的一些解决方案,这些解决方案是互联网软件系统的重要组成部分。下面以互联网架构模式为主线,对相关的技术方案和手段,以及解决的问题进行列举。
一、分层
横向分层,按照关注点进行分层
解决问题:
解决应用程序代码臃肿,职责不清,逻辑复杂,不易理解的问题。
解决应用安全访问,并发访问问题
技术方案和手段
应用程序前后端分离,将传统的单体应用拆分成前端应用、后端接口
应用服务器内部业务逻辑与数据分层,分为应用接口层、应用服务层、领域模型层、数据访问层
应用服务器外部按照访问流向以及不同职能进行分层,分为CDN服务器、反向代理服务器、负载均衡服务器、API网关服务器、应用聚合层服务器、应用共享服务层服务器、缓存服务器、数据库服务器
二、分割
纵向分块,按照高内聚低耦合的原则进行功能模块划分,或按照分散负载的原则进行数据分割或职能分割
解决问题
解决随着系统增大,功能变复杂,不易维护和扩展的问题;
解决应用无法分布式部署问题
解决应用并发访问能力受限问题
技术方案和手段
应用服务按照功能模块进行服务拆分,如电商系统可以分为商品、购物车、订单、库存、支付、物流、通知等服务子系统
按照服务子系统进行数据库分库,如商品库、订单库
当单表数据量很大时,数据库单表访问性能会变慢,可考虑将数据表进行水平拆分,减小单表数据量,提升单表访问性能,如user表分成user_000、user_001、user_002等表
当单台数据库的容量达到极限或无法支撑访问量,可以考虑将数据库进行分片,支持数据库的水平扩展,分散容量和负载,比如按照分片键进行哈希函数映射进行数据分片、按照指定键值的范围进行数据分片、按照目录查找表进行更加灵活数据分片
数据库的主从复制,读写分离,提高访问性能
将数据进行冷热分离,将部分历史数据转移到其他数据库,以降低热数据库的数据量,提高访问性能
三、分布式和集群
将相同功能的多台服务器构成集群,或者将按照分层分割进行拆分的不同服务器,进行分布式部署
解决问题:
解决单一服务器资源(CPU,内存,存储,网络带宽资源)有限的问题,实现高并发访问和大数据量处理
技术方案和手段
将拆分后的应用和服务,分成不同服务器进行部署,降低单一服务器负载
将相同的应用或服务构成集群,通过负载均衡设备共同对外提供服务
分布式存储,如分布式缓存、分布式文件存储、分布式数据库、分布式消息队列、分布式搜索引擎
分布式计算,如分布式离线计算,实时计算等
四、缓存
将数据存放在距离计算最近的位置以加快处理速度,缓存是改善软件性能的第一手段
解决问题:
解决应用并发访问能力受限问题
技术方案和手段
将访问数据进行动静分离,通过CDN、反向代理对静态数据资源进行缓存,如图片,文件,静态页面等;通过本地缓存、远程缓存对部分对失效性不是很敏感的动态数据进行缓存,如排行榜数据
五、异步
除了分层、分割、分布式外,系统解耦的另一个重要手段,将一个业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作
解决问题:
解决系统可用性问题
解决系统响应速度慢问题
解决系统并发访问高峰问题
技术方案和手段
使用消息队列,实现服务模块间调用的解耦;实现公共资源的异步调用,如短信邮件推送的调用;实现并发访问高峰时的流量消峰处理,如秒杀场景
六、冗余
保证服务器宕机的情况下网站依然可以继续服务,数据不会丢失,就需要一定程度的服务器冗余运行,数据冗余备份
解决问题:
解决应用服务器可用性问题
解决数据存储丢失问题
技术方案和手段
将相同的应用或服务构成集群,通过负载均衡设备共同对外提供服务,实现对外提供服务的高可用
将数据存储服务按照主从分离的架构进行分布式部署,实现数据的冗余备份和数据服务的高可用
七、自动化
在无人或少人值守的情况下,通过机器自动处理的方式,保证网站的正常运行
解决问题:
解决由于人维护系统带来的各种问题,如误操作
解决人力维护工作负荷高,效率低的问题
技术方案和手段:
系统的自动监控
系统的自动部署
系统的自动容错,如自动剔除坏掉的服务器
系统的自动的集群扩容
八、安全
保护系统不受恶意访问和攻击,保护网站的重要数据不被窃取,提供可靠的应对策略
解决问题:
解决恶意访问和攻击问题
解决非授权方案问题
解决重要数据窃取问题
解决方案和手段:
通过应用服务器前置层做限制处理,如API网关层做访问统计记录分析,识别恶意访问和攻击特征,进行访问限流控制;增加访问者的认证和鉴权控制,确保有权限的访问者才能进行访问
通过对重要数据进行加密存储的方式,对数据进行保护,如用户密码加密存储
版权声明: 本文为 InfoQ 作者【piercebn】的原创文章。
原文链接:【http://xie.infoq.cn/article/9d87c2f86f8a741809d5e5af5】。文章转载请联系作者。
评论