写点什么

第 4 周作业

用户头像
Steven
关注
发布于: 2020 年 11 月 16 日

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

本周学习了系统架构所面对的挑战
  • 高并发、大流量

  • 高可用

  • 海量数据

  • 用户分布广泛

  • 安全环境恶劣

  • 需求快速变更、发布频繁

  • 渐进式发展

其中高并发是核心挑战

面对高并发,主要是两种解决方案:垂直伸缩、水平伸缩。

垂直伸缩,通过升级硬件和网络吞吐能力,不需要改变现有的应用架构,对单一的服务器进行升级,通常是最简单的短期伸缩性方案。

但也有其缺点,即达到某个程度后,增加计算能力需要更多花费;有其物理极限;操作系统或应用程序自身制约着垂直伸缩最多只能达到某个点。

水平伸缩,通过增加服务器提升计算能力。可以克服垂直伸缩带来的单位计算成本随着计算能力增加而迅速飙升的问题。而且总是可以增加更多的服务器,不会有单台服务器的极限。一般都会采用。

技术方案和手段

分布式架构的演化过程,一直在解决高并发、高可用、伸缩性、扩展性、复杂业务等需求。

  1. 最简单的架构:应用程序、文件、数据库都在一起。

  2. 应用数据分离:把应用服务器与文件服务器、数据库服务器分别部署。

  3. 使用缓存:把经常使用的数据、资源做分布式缓存部署。

  4. 应用服务器集群:提高应用服务器的并发处理能力。

  5. 反向代理和 CDN 加速:用与用户更近的服务器响应用户的请求。

  6. 使用分布式文件系统和分布式数据库:提高文件系统和数据库的响应能力。

  7. 使用 NoSQL 和搜索引擎:规避关系数据的弱点,比如文本查询方面使用搜索引擎,非关系数据的存储可以使用 NoSQL 存储。

  8. 业务拆分:提高业务子系统的内聚性,避免重复和混乱。

  9. 微服务及中台化:把公共的服务拆分出来。

  10. 大数据与智能化:千人千面,个性化推荐等。


用户头像

Steven

关注

还未添加个人签名 2008.07.18 加入

还未添加个人简介

评论

发布
暂无评论
第 4 周作业