学习总结 - 第 4 周

发布于: 14 小时前

本周老师主要围绕互联网系统的架构设计,介绍互联网系统该如何进行架构设计,并通过淘宝、微博、宅米、维基百科,说明了互联网系统的发展演化,系统架构图,及各种架构技术的使用。

  1. 互联网系统面临的挑战:高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展。

  2. 应对高并发挑战的两个技术方向:垂直伸缩和水平伸缩。垂直伸缩不需要改应用架构,可以快速的进行伸缩,但并发越大成本越高,有物理极限。所以一般在传统企业里用的比较多,对于大型互联网公司,垂直伸缩只是做为短期的快速提升手段,从长远来说,用户增长过快还是需要考虑水平伸缩的能力。

  3. 互联网架构演化,分为十个阶段:

1)第零阶段:最简单的互联网应用架构。应用程序、数据库、文件都保存在一台服务器里

2)第一阶段:应用数据分享。应用服务器、文件服务器、数据库服务分别部署

3)第二阶段:使用缓存改善系统性能。增加缓存功能,包括本地缓存和远程分布式缓存

4)第三阶段:使用应用服务器集群改善系统的并发处理能力。增加负载均衡服务器,对应用服务器集群进行调度

5)第四阶段:数据库读写分离。数据库服务器,做主从复制,将读写分离

6)第五阶段:使用反向代理和CDN加速网站响应。增加CDN服务器和反向代理服务器,用户直接从CDN或反向代理服务器读取静态数据

7)第六阶段:使用分布式文件系统和分布式数据库系统。采用分布式系统,提升单服务器的文件存储空间和数据库存储空间

8)第七阶段:使用NoSQL和搜索引擎。使用NoSQL保存历史数据,使用搜索引擎处理搜索功能,避免大量的表关联

9)第八阶段:业务拆分。将不同的业务拆分成不同的应用服务,通过消息队列进行不同服务间的异常消息传递

10)第九阶段:微服务及中台化。将不同的应用部署为微服务,并打造微服务中台,提供给不同的业务系统复用

11)第十阶段:大数据与智能化。增加大数据和人工智能功能

  1. 互联网架构模式

1)分层。横向维度切分,每层负责一部分,通过上层对下层依赖和调用组成完整系统

2)分割。功能和服务分割。便于软件开发和维护,也便于不同模块的分布式部署,提升系统的并发能力和扩展能力

3)分布式。将不同模块部署在不同的服务器上。便于横向扩展

4)集群。通过多台服务器部署相同应用构成集成

5)缓存。将数据存放在距离计算最近的位置加快处理速度。包括CDN、反向代理、本地缓存、远程缓存

6)异步。将业务操作分成多个阶段,每个阶段之间通过共享数据而不是直接调用的方法进行协作

7)冗余。通过冗余提升可用性

8)自动化。达到无人值守运行。主要集中在运维方面

9)安全。通过加密和防攻击手段,提升数据的保密性和系统的稳定性,可用性

  1. 互联网系统架构核心要素:高性能;高可用;可伸缩;可扩展;安全;

  2. 互联网架构技术

1)前端架构:App及Web开发技术;浏览器及HTTP优化技术;CDN;动静分离;图片服务;反向代理;DNS

2)网关及应用层架构:网关架构;负载均衡;动态页面静态化;业务拆分

3)服务层架构:微服务框架;分布式消息队列;分布式缓存;分布式一致性(锁)服务

4)存储层架构:分布式文件;分布式关系数据库;NoSQL数据库

5)后台架构:大数据平台;搜索引擎;推荐引擎;数据仓库

6)运维与安全:数据采集与展示;数据监控与报警;攻击与防护;数据加密与解密

本周对系统架构有了大致了解,对于系统架构用到的技术也有了一定的理解。后续课程中将继续学习各种技术的实操技术。

用户头像

饶军

关注

还未添加个人签名 2020.03.23 加入

还未添加个人简介

评论

发布
暂无评论
学习总结 - 第 4 周