架构师 0 期第四周总结
互联网系统面临的挑战:
(1)高并发,大流量
(2)高可用(7*24)
(3)海量数据
(4)用户分布广泛,网络情况复杂
(5)安全环境恶劣
(6)需求快速变更,发布频繁
(7)迭代式发展:好的互联网产品都是慢慢运营出来的,不是一开始就开发好的。
应对高并发挑战的两个技术方向
垂直伸缩:使用更加强大的服务器,增加更多的带宽
缺点:
到达某个程度后,增加计算能力需要更多的花费
垂直伸缩有物理极限
操作系统的设计或者应用程序自身制约着垂直伸缩最多只能达到某个点
水平伸缩:通过增加服务器提升计算能力的一类架构方法
互联网架构演化
第0阶段:应用程度与文件、数据库同在一台单一的服务器上
第1阶段:应用数据分离,应用程序、文件以及数据库运行在独立的服务器上
第2阶段:在第一节点的基础上,使用缓存改善系统的性能
第3阶段:使用应用服务器集群改善并发访问性能
第4阶段:数据库读写分离
第5阶段:使用反向代理和CDN加快访问响应
第6阶段:使用分布式文件系统和分布式数据库系统
第7阶段:使用NoSQL和搜索引擎
第8阶段:业务拆分
第9阶段:微服务及中台化
第10阶段:大数据与智能化
架构模式
每一个模式描述了一个不断重复的问题以及该问题的解决方案。模式的关键在于重复性。
互联网架构模式就是试图去描述那些为解决互联网系统高性能,高可用,易扩展,可伸缩,安全等目标,被很多互联网应用重复使用的一些解决方案,这些解决方案是互联网软件系统的重要组成部分。
(1)分层
系统的横向切割,每个部分负责一部分比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统
(2)分割
系统的纵向切割
(3)分布式
分布式让服务可以运行在多个服务器上,这样能够处理并发访问和大数据量
(4)集群
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
(5)缓存
缓存就是将数据存放在距离计算最近的位置以加快处理速度
(6)异步
降低系统之间的直接关系,使之可以独立发展
(7)冗余
通过备份或者主从关系,增加系统的高可用性
(8)自动化
减少人员在运维方面的依赖性
(9)安全
不容易被网络攻击
评论