第三周作业
作业问题
作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
作业二:根据当周学习情况,完成一篇学习总结
作业提交:
作业提交地址: https://jinshuju.net/f/FXMpbx
作业一:
大型互联网系统,主要面临的几个问题:
高并发、高流量
高可用
可伸缩
可扩展
但根本问题仍围绕在:高可用、高性能。
针对不同的问题、和不同的业务发展阶段,产生了典型的架构演进模式。个人认为这些技术方案和手段可以总结为如下几点思想:
拆分思想
随着系统的发展,几乎总是将系统拆分成职责单一的模块。将原有的功能不断拆分,使用更据针对性的方案进行解决。
分层、分隔也是一种拆分。
业务拆分也是拆分。
微服务也是一种拆分
NoSQL数据库可以理解为将传统数据库中的一部分职责拆分出来,使用单独的技术优化。
拆分的好处是:拆分后的模块职责更加专注,可独立演进,单独优化和独立扩容。拆分甚至是架构模式的低层实现基础。
冗余思想
冗余是实现系统高可用的基本方案,随着系统的分布式话,冗余更是几乎遍布来整个系统。冗余也是优化系统的性能的基本手段,通过冗余扩充系统的容量(即集群)。
又比如数据库但读写分离,也可以理解为一种冗余思想。通过冗余但读节点,提高数据库的性能。
缓存思想
缓存几乎存在与架构的每个层次,也可以理解为一种冗余。通过缓存,将获取成本高的资源(可以是速度慢、也可以计算复杂)缓存在当前计算节点的附近,提高系统的整体性能。
整体架构上看,请求是层层缓存的:客户端缓存、CDN缓存、反向代理缓存、分布式缓存、应用本地缓存等等。
异步思想
异步实现依赖的解藕,可以是系统间调用的异步,也可以是系统内的异步。异步是系统架构设计的一大利器。异步进一步降低来系统在时间上的依赖,从而实现削峰填谷的作用。
评论