架构师训练营 -Week 04
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述,并根据当周学习情况,完成一篇学习总结
仔细阅读了李智慧老师的《大型网站技术架构》,结合老师在训练营直播中传递的知识,总结一下大型网站所具备的核心要素。
大型互联网系统需要面临高并发、大流量、高可用、海量数据、用户分布广泛、网络情况复杂、安全环境恶劣、需求快速变更、发布频繁及渐进式发展等挑战,这意味着设计一个典型的大型互联网应用系统的架构核心需要达到以下几点:
高性能:系统的响应时间快,吞吐量大,承载更高的并发用户数,资源利用率高
高可用:系统长期稳定,几乎不会失效,做到容错灾备,系统自动恢复
伸缩性:系统通过增加(或减少)自身资源规模的方式增强(或减少)处理业务,往往是水平伸缩,提高系统整体业务吞吐能力
扩展性:基础设施不需要经常变更,应用之间较少依赖或耦合,可以对需求变更快速响应。它对扩展开放,对修改关闭
安全性:数据安全保护,抵御各种网络攻击
面对这样复杂的环境及应用场景,类似与设计模式,总结出了一些可重复使用的架构模式:
分层:分层其实是软件架构里非常普遍的一种设计思想,例如网络 7 层模型,开发 mvc 模型等,对于 web 应用系统基础的可以分为应用层、服务层、数据层,对系统实现高并发向分布式方向发展至关重要
分割:将业务进行合理的切分
分布式:不同的业务,分而治之,解决高并发问题
集群:单一应用横向扩展
缓存:CDN、nginx 反向代理缓存、后端本地缓存、分布式缓存
异步:多个阶段进行拆分业务,消息队列
冗余:web 节点冗余、数据冗余,异地容灾
针对这样一个典型的大型互联网应用系统面临的问题进行架构设计的时候我们使用了那些技术解决方案和手段.
评论