架构师训练营第 4 周学习总结

用户头像
netspecial
关注
发布于: 2020 年 10 月 11 日

4.1 系统架构:系统技术挑战与方案

  • 互联网架构面临的挑战:

  • 高并发,大流量

  • 高可用

  • 海量数据

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

  • 安全环境恶劣

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

  • 渐进式发展

  • 应对高并发挑战:

  • 垂直伸缩:增强单一服务器的功能。通过升级硬件和网络吞吐能力可以实现垂直伸缩。

  • 成本和花费

  • 物理和操作系统及应用程序的限制

  • 水平伸缩:通过增加服务器提升计算能力

  • 应对互联网系统的渐进式发展的要求

  • 分布式技术的关键技术方案

4.2 分布式架构演化

  • 互联网架构演化

  • 0:最简单的互联网应用架构 - 单一应用服务器(应用程序,文件系统,数据库)

  • 1:应用和数据分离 - 应用程序,文件系统,数据库部署在三台服务器

  • 2:使用缓存改善系统性能 - 本地缓存和远程分布式缓存

  • 3:使用应用服务器集群改善系统的并发处理能力 - 通过负载均衡调度服务器将请求分发给不同的应用服务器

  • 4:数据库读写分离 - 使用主从分离的方式,设置主服务器和从服务器

  • 5:使用反向代理和CDN加速网站响应 - CDN是指内容分发网络,是部署在网络运营服务商机房里的服务器。反向代理服务器主要承担缓存的职责

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

  • 7:使用NoSQL和搜索引擎 - 提高数据的存储能力和查询速度

  • 8:业务拆分 - 可以通过异步的消息队列通信

  • 9:微服务及中台化 - 关键的公用服务由微服务来提供

  • 10:大数据与智能化

4.3 架构模式与要素

  • 架构模式

互联网架构模式就是试图去描述那些为解决互联网系统高性能、高可用、易扩展、可伸

缩、安全等目标,被很多互联网应用重复使用的一些解决方案,这些解决方案是互联网

软件系统的重要组成部分。

  • 分层

  • 视图层,应用层,服务层,基础设施层,存储层

  • 不同的层次部署在不同的服务器集群上,实现一个分布式的分层架构。

  • 分割

  • 分割是在纵向方面对软件进行切分

  • 分割以后的功能模块也部署在不同的服务器上

  • 分布式

  • 分布式意味着解决同样的问题,可以使用更多的计算机。计算机越多,CPU,内存,存储资源也越多。能够处理的并发访问和数据量也越来越大。

  • 集群

  • 多台服务器部署成相同的应用,构成一个集群,通过负载均衡,共同对外提供服务。

  • 集群是将相同功能的多台服务器构成一个集群。这个集群里每一台服务器承担的职责是一样的。

  • 缓存

  • CDN

  • 反向代理

  • 本地缓存

  • 远程缓存

  • 异步

  • 将一个业务操作分成多个阶段,每个阶段通过共享数据而不是直接调用的方式进行操作。

  • 主要的手段就是消息队列。一个应用当作消息的生产者,将数据通过消息发送给消息队列。而另一个应用当作消息的消费者,从消息队列中获取数据,去消费消息。

  • 没有直接调用,没有耦合,通过共享数据,完成依赖调用,完成业务处理流程。

  • 通过异步的方式,可以提高系统的可用性,加快网站的响应速度。当访问并发高峰的时候,系统处理不过来,消息就会缓存(Buffer)在消息队列里,不会立即处理,缓解了高并发的压力。

  • 冗余

  • 应用部署在多台服务器上,一台服务器宕机了,其他可以提供服务。

  • 数据备份在多台服务器上,一台硬盘损坏了,数据丢失了,其他还有备份。

  • 自动化

  • 一切都可以自动化,是互联网应用的理想状态。

  • 主要应用在运维方面,自动监控,自动部署,自动剔除问题服务器,自动做集群扩容。

  • 安全

  • 身份识别,验证

  • 网络通讯加密

  • 敏感数据加密

  • 防止XSS,SQL注入

  • 垃圾信息过滤



  • 互联网系统架构核心要素

  • 高性能

  • 用户无法忍受一个响应缓慢的应用。

  • 性能指标有很多种,TPS响应时间,并发数,性能计数器等。

  • 系统性能优化是互联网系统设计的一个关键点。

  • 高并发访问必然导致系统资源不足,需要优化系统性能,提升系统在高并发情况下的响应特性。

  • 高可用

  • 系统高可用的主要手段是冗余

  • 对于互联网应用,高可用是一个硬指标,也就是缓冲余地比较低的指标。

  • 可伸缩

  • 是否容易向集群添加服务器

  • 是否提供无差别的服务

  • 分布式关系数据库做伸缩比较困难,成本较大。NoSQL伸缩性更友好。

  • 可扩展

  • 关注的是功能性需求

  • 主要手段是事件驱动架构和分布式微服务

  • 安全

  • 互联网架构技术一览

  • 前端架构

  • 网关及应用层架构

  • 服务层架构

  • 存储层架构

  • 后台架构

  • 运维与安全



用户头像

netspecial

关注

还未添加个人签名 2011.07.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 4 周学习总结