架构师训练营第三周:系统架构
系统技术挑战与方案
互联网系统面临对挑战
高并发/大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求变更快速,发布频繁
渐进式发展
架构是随着互联网业务从小到大逐步发展大,即业务和技术架构同步发展,而传统行业,在既有稳定的业务场景上实现功能。
其中,高并发是根本挑战,其他都可以理解为高并发所导致的。
应对高并发挑战的两个技术方向
垂直伸缩(升级单机硬件)
简单、不改变应用架构
短期伸缩方案
有物理极限、边际效用降低
水平伸缩(增加服务器数量)
突破单台物理极限
伸缩方案的圣杯
分布式架构的演化
第0阶段:单一服务器
原型验证,快速上线
第1阶段:应用数据分离
解决资源争用
对应用架构的改动几乎没有改变。
思想:不断增加服务器,细拆分服务的职责(单一职责原则)
第2阶段:使用缓存
思想:缓存,即使用高速模块缓存低速模块。
解决:加快速度、降低低速组件压力。
缓存分类:本地缓存/远程缓存
第3阶段:使用应用集群
解决:改善并发处理能力
思想:分布式
第4阶段:数据库读写分离
解决:数据库的处理能力
思想:读写分离
第5阶段:使用反向代理和CDN
思想:本质上还是缓存,只不过是贴近用户实现缓存
第6阶段:使用分布式文件系统和分布式数据库
解决:随着压力增加,瓶颈又出现在了数据库或文件系统上。
系统的并发能力、数量提升。
思想:分布式、集群
第7阶段:使用NoSQL和搜索引擎
思想:细化和拆分职责。这里就是将数据库中的部分查询职责,使用更专用的技术去解决。
第8阶段:业务拆分
思想:细化和拆分。从业务角度,将系统职责拆分
解决:开发运维更简单、单个业务系统更简单灵活。
第9个阶段:微服务和中台化
思想:抽取公共
微服务是目前互联网架构的主要架构模式。
第10个阶段:大数据与智能化
解决:千人千面
架构模式和要素
模式
分层模式
横向分层
分隔模式
纵向切割。将不同的功能和服务分隔成高内聚低耦合的模块。
分层/分隔,同时使得系统拆分成分布式部署的集群,独立发展和演化。
集群模式
集群是将系统功能的多态服务器构成一个集群对外提供服务。
缓存模式
缓存就是将数据存放在距离计算最近的位置加快处理速度。缓存无处不在。
CDN
反向代理
本地缓存
远程缓存
异步模式
异步的低层思想是降低耦合性。解藕使得模块可以独立发展、变更。
提高可用性
加快相应速度
消除访问高峰
冗余
自动化
主要在运维
自动化剔除失败节点
安全
加密
XSS、SQL注入
交易风控处理
架构的5个核心要素(标准)
高性能
高可用
主要手段是冗余
相比高性能,高可用是更硬性的指标,无缓冲余地。
(容量)可伸缩
容易通过不断添加服务器实现扩容。
(功能)可扩展
前三项都是从非功能性角度衡量。可扩展关注的是功能性需求,快速相应需求变化。
主要手段:事件驱动、分布式服务
评论