week4 总结 --- 系统架构

用户头像
a晖
关注
发布于: 2020 年 07 月 01 日

一,系统架构概述:互联网系统面临怎样的挑战



  • 高并发大流量 需要应对高并发用户,大流量访问

  • 高可用 7*24小时不间断使用

  • 海量数据 需要存储管理海量数据

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

  • 安全环境恶劣 容易受到攻击

  • 需求更新发布频繁

  • 渐进式发展



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



  • 垂直伸缩

通过升级硬件和网络吞吐能力可以实现垂直伸缩。

优点:不需要改变应用架构就可以实现,最简单的短期伸缩方案。

缺点:达到某个程度后,增加计算能力需要更多的花费;垂直伸缩有物理极限;

  • 水平伸缩

通过增加服务器提升计算能力的一类架构设计方法。

可以克服垂直伸缩成本随计算能力增加而迅速飙升的问题。

水平伸缩总是可以增加更多的服务器,没有垂直伸缩那样的单台服务器的极限

三,互联网架构的演化



  1. 架构演化的第零阶段

最简单的互联网应用架构



  1.  架构演化第一阶段

应用数据分离



  1. 架构演化第二阶段

使用缓存改善性能





4.架构演化的第三阶段

使用应用服务器集群改善系统的并发处理能力





5.架构演化的第四阶段

数据库读写分离



  1. 架构演化的第五阶段

使用cdn 和反向代理加速网站响应





7,架构演化的第六阶段

使用分布式文件系统和分布式数据库系统



8,架构演化的第七阶段

使用NoSql 和搜索引擎



  1. 架构演化的第八阶段

业务拆分

10.架构演化的第九阶段

微服务及中台化





四,互联网架构模式



互联网架构模式就是试图去描述那些为解决互联网系统高性能,高可用,易扩展,可伸缩,安全等目标,被很多互联网公司重复使用的解决方案,这些解决方案是互联网软件系统的重要组成部分。



  • 分层

分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统。



  • 分割

如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。



系统越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,一方面有助于软件的开发和维护;另一方面,便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。



  • 分布式

 

对于大型网站,分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。分布式意味着解决同样的问题可以使用更多的计算机,计算机越多,CPU、内存、存储资源也就越多,能够处理的并发访问和数据流就越大。

  • 分布式应用和服务

  • 分布式静态资源

  • 分布式数据和存储

  • 分布式计算



  • 集群

使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问几种的模块,比如网站的首页,还需要将独立部署的服务器集群化,即多态服务器部署相同应用构成一个集群,通过负载均衡设备功能对外提供服务。



  • 缓存

缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。

* CDN

* 反向代理

* 本地缓存

* 远程缓存



  • 异步

计算机软件发展的一个重要目标和驱动力是降低软件耦合性。事物之间越少直接关系,那么就越少被彼此影响,越可以独立发展。大型网站架构中,系统解耦中的手段除了前面提到的分层、分割、分布等手段,还有一个重要手段是异步,就是讲一个业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作。

  • 提高系统的可用性。

  • 加快网站响应速度。

  • 消除并发访问高峰。



  • 冗余

互联网应用需要 7 x 24 小时连续运行,但是服务器总有可能出现故障,特别是服务器规模比较大的时候,服务器宕机是必然事件。要想保证在服务器宕机的情况下网站依然可以继续服务,数据不会丢失,就需要一定程度的服务器冗余运行,数据冗余备份。



  • 自动化

在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。目前互联网的自动化架构设计主要集中的运维方面。



  • 安全

互联网的开放特性使得其从诞生起就面对巨大的安全挑战,网站在安全架构方面也积累了许多模式:通过密码和手机校验码进行身份认证;登录、交易等操作需要对网络通讯进行加密,网站服务器上存储的敏感数据如用户信息等也进行加密处理;为了防止机器人程序滥用网络资源供给网站,网站使用验证码进行识别;对于常见的用于攻击网站的 XSS 攻击, SQL 注入,进行编码转换等相应处理;对于垃圾信息、敏感信息进行过滤;对转账交易等重要操作根据交易模式和交易信息进行风险控制。



五,如何衡量一个系统的架构设计



  • 高性能

  • 高可用

  • 可伸缩

  • 可扩展

  • 安全



六,互联网架构技术一览





用户头像

a晖

关注

还未添加个人签名 2018.12.05 加入

还未添加个人简介

评论

发布
暂无评论
week4总结---系统架构