写点什么

第三周作业

用户头像
m
关注
发布于: 2020 年 10 月 11 日

作业问题

作业一:

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

作业二:根据当周学习情况,完成一篇学习总结

作业提交:

作业提交地址: https://jinshuju.net/f/FXMpbx



作业一:

大型互联网系统,主要面临的几个问题:

  1. 高并发、高流量

  2. 高可用

  3. 可伸缩

  4. 可扩展



但根本问题仍围绕在:高可用、高性能。

针对不同的问题、和不同的业务发展阶段,产生了典型的架构演进模式。个人认为这些技术方案和手段可以总结为如下几点思想:



拆分思想

随着系统的发展,几乎总是将系统拆分成职责单一的模块。将原有的功能不断拆分,使用更据针对性的方案进行解决。

分层、分隔也是一种拆分。

业务拆分也是拆分。

微服务也是一种拆分

NoSQL数据库可以理解为将传统数据库中的一部分职责拆分出来,使用单独的技术优化。

拆分的好处是:拆分后的模块职责更加专注,可独立演进,单独优化和独立扩容。拆分甚至是架构模式的低层实现基础。



冗余思想

冗余是实现系统高可用的基本方案,随着系统的分布式话,冗余更是几乎遍布来整个系统。冗余也是优化系统的性能的基本手段,通过冗余扩充系统的容量(即集群)。

又比如数据库但读写分离,也可以理解为一种冗余思想。通过冗余但读节点,提高数据库的性能。



缓存思想

缓存几乎存在与架构的每个层次,也可以理解为一种冗余。通过缓存,将获取成本高的资源(可以是速度慢、也可以计算复杂)缓存在当前计算节点的附近,提高系统的整体性能。

整体架构上看,请求是层层缓存的:客户端缓存、CDN缓存、反向代理缓存、分布式缓存、应用本地缓存等等。



异步思想

异步实现依赖的解藕,可以是系统间调用的异步,也可以是系统内的异步。异步是系统架构设计的一大利器。异步进一步降低来系统在时间上的依赖,从而实现削峰填谷的作用。



用户头像

m

关注

还未添加个人签名 2018.06.06 加入

还未添加个人简介

评论

发布
暂无评论
第三周作业