写点什么

架构师训练营第三周:系统架构

用户头像
m
关注
发布于: 2020 年 10 月 08 日

系统技术挑战与方案

互联网系统面临对挑战

  • 高并发/大流量

  • 高可用

  • 海量数据

  • 用户分布广泛,网络情况复杂

  • 安全环境恶劣

  • 需求变更快速,发布频繁

  • 渐进式发展

架构是随着互联网业务从小到大逐步发展大,即业务和技术架构同步发展,而传统行业,在既有稳定的业务场景上实现功能。

其中,高并发是根本挑战,其他都可以理解为高并发所导致的。



应对高并发挑战的两个技术方向

  • 垂直伸缩(升级单机硬件)

  • 简单、不改变应用架构

  • 短期伸缩方案

  • 有物理极限、边际效用降低

  • 水平伸缩(增加服务器数量)

  • 突破单台物理极限

  • 伸缩方案的圣杯



分布式架构的演化

第0阶段:单一服务器

原型验证,快速上线



第1阶段:应用数据分离

解决资源争用

对应用架构的改动几乎没有改变。

思想:不断增加服务器,细拆分服务的职责(单一职责原则)



第2阶段:使用缓存

思想:缓存,即使用高速模块缓存低速模块。

解决:加快速度、降低低速组件压力。

缓存分类:本地缓存/远程缓存

第3阶段:使用应用集群

解决:改善并发处理能力

思想:分布式

第4阶段:数据库读写分离

解决:数据库的处理能力

思想:读写分离



第5阶段:使用反向代理和CDN

思想:本质上还是缓存,只不过是贴近用户实现缓存



第6阶段:使用分布式文件系统和分布式数据库

解决:随着压力增加,瓶颈又出现在了数据库或文件系统上。

系统的并发能力、数量提升。

思想:分布式、集群



第7阶段:使用NoSQL和搜索引擎

思想:细化和拆分职责。这里就是将数据库中的部分查询职责,使用更专用的技术去解决。



第8阶段:业务拆分

思想:细化和拆分。从业务角度,将系统职责拆分

解决:开发运维更简单、单个业务系统更简单灵活。



第9个阶段:微服务和中台化

思想:抽取公共

微服务是目前互联网架构的主要架构模式。



第10个阶段:大数据与智能化

解决:千人千面



架构模式和要素

模式

分层模式

横向分层

分隔模式

纵向切割。将不同的功能和服务分隔成高内聚低耦合的模块。



分层/分隔,同时使得系统拆分成分布式部署的集群,独立发展和演化。



集群模式

集群是将系统功能的多态服务器构成一个集群对外提供服务。



缓存模式

缓存就是将数据存放在距离计算最近的位置加快处理速度。缓存无处不在。

CDN

反向代理

本地缓存

远程缓存



异步模式

异步的低层思想是降低耦合性。解藕使得模块可以独立发展、变更。

  • 提高可用性

  • 加快相应速度

  • 消除访问高峰



冗余



自动化

主要在运维

自动化剔除失败节点



安全

加密

XSS、SQL注入

交易风控处理



架构的5个核心要素(标准)

高性能

高可用

主要手段是冗余

相比高性能,高可用是更硬性的指标,无缓冲余地。

(容量)可伸缩

容易通过不断添加服务器实现扩容。

(功能)可扩展

前三项都是从非功能性角度衡量。可扩展关注的是功能性需求,快速相应需求变化。

主要手段:事件驱动、分布式服务



安全

用户头像

m

关注

还未添加个人签名 2018.06.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第三周:系统架构