极客时间第 0 期架构师训练营第四周总结
本周主要概要性的讲了大型应用系统中常用的技术及场景。
几点心得
我对以下几点印象深刻:
大型系统都是迭代演进的,并不是一开始就设计好的。
系统的扩展分为纵向扩展(提高单机处理能力)和横向扩展(增加节点)。横向扩展更常用,但任何时候,纵向扩展都是一个重要的可选项,应该根据实际情况选择合适分扩展方法。
任何技术都有其适用场景,不能只看到技术的优点,而忽略实际要解决的问题。
发现问题、定义问题才能更好的解决问题。解决方案往往是现成的,但问题有时却不是显而易见的。
内容回顾
互联网系统的特点和面临的挑战
高并发、大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展
应对高并发的两种思路
垂直伸缩:通过增加单节点处理能力应对增长的业务需求。优点是简单、快速;缺点是后期性价比越来越低,且有极限。
水平伸缩:通过增加更多节点来应对增长的业务需求。优点是可无限扩展;缺点是复杂,维护困难。
架构模式
每个模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心,这样,就能一次又一次的使用该方案而不必做重复工作。
模式的关键在于模式的可重复性,问题与场景重复性带来解决方案的可重复性。
互联网架构主要有以下几种模式:
分层
分割
分布式
集群
缓存
异步
冗余
自动化
安全
评论