文章目录
一、架构模式
(1)模式
模式,针对一类重复发生的问题的通用解决方案,能够反复使用这种方案解决同类问题
(2)可重复性
模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用
(3)互联网架构模式
互联网架构模式就是试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用重复使用的一些解决方案
二、架构模式分类
(1)分层
定义
分层,将系统在“横向维度”上切分成几个部分,每个部分负责一部分相对单一的职责,通过上层对下层依赖和调用构成完整的系统
分层的关键在于层次,第一层、第二层…
基于层次,就感觉李智慧老师讲到的“横向”是有问题的,更确切地说,应该是“纵向”
常用分层结构
上面一层是视图层
中间一层是应用逻辑层
下面一层是公用服务层
再下面一层是基础设施层
最下一层是存储层(DAO)
分层以后的模块进一步进行分布式部署,即不同的层次部署在不同的服务器集群上,实现分布式的分层架构
依赖倒置原则依然符合分层架构模式
(2)分割
定义
分割,是对系统进行“纵向切分”,依然可以部署在不同的服务器上,也即是在分层的基础上,再进行切分
主要是系统越来越复杂,将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有利于开发和维护,另一方面有利于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力
与分层类似,这里用纵向不如用横向要好
常见应用
电商网站:
首页
搜索页
商品页
购物车页
订单页
支付页
…
可以进行纵向功能切分,分割成不同的功能模块,再进一步部署在不同的服务器上,构成分割后的服务器集群
分层与分割一起切分系统,将系统切分各个独立的模块和功能,进而可以分别独立分布式部署
(3)分布式
定义
分布式,将分层和分割后的模块进行分布式的部署,不同模块部署在不同的服务器上,通过远程调用实现协同工作,意味着解决问题可以使用更多的计算机,计算资源更多,能够处理并发访问更大
分布式的关键,就是不同的服务器
常见应用
分布式常见应用如下:
分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
(4)集群
作用
使用分布式针对分层和分割后的模块进行分布式部署,但对于用户访问集中的模块,如首页,还需要将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务
集群与分布式区别
集群,就是将相同功能的多台服务器构成一个集群,里面的每台服务器承担相同的职责
分布式,则是不同的服务,不同的功能
(5)缓存
定义
缓存,将数据存放在距离计算最近的位置,加快处理速度
缓存是改善性能的第一手段
常见应用
缓存常用实例:
CDN(Content Delivery Network,内容分发网络)
反向代理
本地缓存
远程缓存
(6)异步
降低耦合度
计算机软件发展的一个目标和驱动力是降低软件耦合性,事物之间的直接联系越少,影响就会越少,便能够独立发展
系统解耦合的手段除了分层、分割、分布式,还有异步
异步定义
异步,请求方发送数据到接收方,接收方受到数据之后,将响应返回,并没有返回处理结果,而是告知请求方已经接收到数据,等处理完结果之后,才主动将数据发送给接收方,以避免因为同步导致的长时间等待
异步,就是将一个业务操作分成多个阶段,每个阶段之间共享数据而不是直接调用的方法进行协同,例如消息队列
主要作用
主要作用如下:
提高系统可用性
加快网络响应速度
消除并发访问高峰
(7)冗余
作用
互联网和应用需要 7 * 24 小时运行,服务器总会有故障出现,宕机是会发生的,要保证服务器宕机的情况下网站依然可以继续使用,数据不丢失,需要在服务器上进行冗余运行,数据冗余备份
常见应用
服务器主备方案
(8)自动化
作用
无人值守的自动化是系统的理想状态,当前互联网自动化架构设计主要用于运维方面
常见应用
云原生:
系统自动监控
自动部署
自动剔除坏掉的服务器
自动进行集群扩容
(9)安全
定义
互联网的开放模式就使得系统的安全面临巨大的挑战
互联网安全模式
网站在安全架构有许多模式:
通过密码和手机校验码进行身份认证
登录、交易等操作需要对网络通讯进行加密
网站服务器上存储的敏感数据如用户信息等也进行加密处理
为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别
对于常见的用于攻击网站的 XSS 攻击,SQL 注入,进行编码转换等相应处理
对于垃圾信息、敏感信息进行过滤
对转账交易等重要操作根据交易模式和交易信息进行风险控制
参考