【从 0 开始学架构】学习笔记 Day6 互联网架构模式

一、架构模式

(1)模式

模式,针对一类重复发生的问题的通用解决方案,能够反复使用这种方案解决同类问题

(2)可重复性

模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用

(3)互联网架构模式

互联网架构模式就是试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸缩、安全等目标,被很多互联网应用重复使用的一些解决方案

二、架构模式分类

(1)分层

定义

分层,将系统在“横向维度”上切分成几个部分,每个部分负责一部分相对单一的职责,通过上层对下层依赖和调用构成完整的系统

分层的关键在于层次,第一层、第二层…

基于层次,就感觉李智慧老师讲到的“横向”是有问题的,更确切地说,应该是“纵向”

常用分层结构

上面一层是视图层
中间一层是应用逻辑层
下面一层是公用服务层
再下面一层是基础设施层
最下一层是存储层(DAO)

分层以后的模块进一步进行分布式部署,即不同的层次部署在不同的服务器集群上,实现分布式的分层架构

依赖倒置原则依然符合分层架构模式

(2)分割

定义

分割,是对系统进行“纵向切分”,依然可以部署在不同的服务器上,也即是在分层的基础上,再进行切分

主要是系统越来越复杂,将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有利于开发和维护,另一方面有利于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力

与分层类似,这里用纵向不如用横向要好

常见应用

电商网站:

首页
搜索页
商品页
购物车页
订单页
支付页

可以进行纵向功能切分,分割成不同的功能模块,再进一步部署在不同的服务器上,构成分割后的服务器集群

分层与分割一起切分系统,将系统切分各个独立的模块和功能,进而可以分别独立分布式部署

(3)分布式

定义

分布式,将分层和分割后的模块进行分布式的部署,不同模块部署在不同的服务器上,通过远程调用实现协同工作,意味着解决问题可以使用更多的计算机,计算资源更多,能够处理并发访问更大

分布式的关键,就是不同的服务器

常见应用

分布式常见应用如下:

分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算

(4)集群

作用

使用分布式针对分层和分割后的模块进行分布式部署,但对于用户访问集中的模块,如首页,还需要将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务

集群与分布式区别

集群,就是将相同功能的多台服务器构成一个集群,里面的每台服务器承担相同的职责
分布式,则是不同的服务,不同的功能

(5)缓存

定义

缓存,将数据存放在距离计算最近的位置,加快处理速度

缓存是改善性能的第一手段

常见应用

缓存常用实例:

CDN(Content Delivery Network,内容分发网络)
反向代理
本地缓存
远程缓存

(6)异步

降低耦合度

计算机软件发展的一个目标和驱动力是降低软件耦合性,事物之间的直接联系越少,影响就会越少,便能够独立发展

系统解耦合的手段除了分层、分割、分布式,还有异步

异步定义

异步,请求方发送数据到接收方,接收方受到数据之后,将响应返回,并没有返回处理结果,而是告知请求方已经接收到数据,等处理完结果之后,才主动将数据发送给接收方,以避免因为同步导致的长时间等待

异步,就是将一个业务操作分成多个阶段,每个阶段之间共享数据而不是直接调用的方法进行协同,例如消息队列

主要作用

主要作用如下:

提高系统可用性
加快网络响应速度
消除并发访问高峰

(7)冗余

作用

互联网和应用需要 7 * 24 小时运行,服务器总会有故障出现,宕机是会发生的,要保证服务器宕机的情况下网站依然可以继续使用,数据不丢失,需要在服务器上进行冗余运行,数据冗余备份

常见应用

服务器主备方案

(8)自动化

作用

无人值守的自动化是系统的理想状态,当前互联网自动化架构设计主要用于运维方面

常见应用

云原生:

系统自动监控
自动部署
自动剔除坏掉的服务器
自动进行集群扩容

(9)安全

定义

互联网的开放模式就使得系统的安全面临巨大的挑战

互联网安全模式

网站在安全架构有许多模式:

通过密码和手机校验码进行身份认证
登录、交易等操作需要对网络通讯进行加密
网站服务器上存储的敏感数据如用户信息等也进行加密处理
为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别
对于常见的用于攻击网站的 XSS 攻击,SQL 注入,进行编码转换等相应处理
对于垃圾信息、敏感信息进行过滤
对转账交易等重要操作根据交易模式和交易信息进行风险控制


参考

《从 0 开始学架构》39 | 互联网技术演进的模式

《从 0 开始学架构》https://time.geekbang.org/column/article/11760

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值