【架构训练 Week04 作业】

用户头像
Rex
关注
发布于: 2020 年 07 月 01 日

作业1:一般大型互联网应用采用那些技术方案和手段,解决什么问题?

网关层

  • 负载均衡:通过反向代理技术把大业务流量分配多个服务器节点,以避免全部流量到达到一个节点。通常直接采用云服务的负载均衡服务(如阿里云/Ucloud的网络负载均衡服务)。

  • 网关架构:采用Kong网关服务,解决流量管理、基础接口安全验证等问题

  • 业务拆分:通过领域驱动设计DDD拆解业务模块,并落实到微服务,增加可维护性,以避免多有业务都在某一个或者少数的某几个代码项目中。

服务层架构

  • 微服务框架:通过成熟稳定的微服务框架,提供常规的基础的功能,提供可复用性,通常可以采用Gin、Lumen、Spring等框架

  • 分布式消息队列:采用NSQ处理异步消息,它有分布式、高性能和低延时的特点,能很好地处理异步消息,以帮助系统异步解耦、削峰填谷等问题。

存储层框架

  • 分布式文件存储:采用成熟的第三方存储服务,如七牛云文件存储、阿里云OSS等,解决海量静态文件存储

  • 分布式关系数据库:随着数据量达到亿级甚至数十亿级,以及增速较快的问题,常规的分库分表已经难以满足需求,可以通过分布式关系数据库解决,如TIDB或阿里云的PolarDB和DRDS



本周学习总结

系统架构演进

  • 本周主要学习了近20年互联网技术架构的演进,从传统的企业软件系统架构到互联网架构,传统系统特点是用户请求并发较小、企业内部大型软件、迭代较慢,而互联网系统往往请求是高并发、需求变化快。

系统架构演进的11个阶段
  1. 第0阶段:最简单的互联网应用架构:所有应用在同一台服务器



  1. 应用数据分离:应用服务器、数据库服务器、存储服务器

  2. 使用缓存改善系统的性能

  3. 使用应用服务器集群改善系统的并发处理能力(负载均衡)

  1. 数据库读写分离

  2. 使用反向代理和CDN加速网站响应

  3. 使用分布式文件系统和分布式数据库系统

  1. 使用NoSQL和搜索引擎

  2. 业务拆分

  3. 微服务和中台化

  4. 大数据和智能化

回顾自己经历的系统架构演进

  • 上大学期间开发的软件系统,如给学校用的报修系统和课程系统,其架构就是第0阶段的“所有应用服务都在同一台服务器”。

  • 后来毕业后开始经历了三家公司,从日均PV100万到现在5000万,所经历大略就是这第1到9的阶段。在这个过程中随着用户量、访问量的提升,开始出现一些问题和挑战,于是开始使用新技术来解决,如负载均衡、分布式文件存储、CDN加上、分布式数据库系统等。

  • 按这个架构演进,也许三年五年后又会出现新的问题和挑战,当前的技术架构不能满足发展,要随时面对新挑战和拥抱变化,来学习和更新系统架构。



用户头像

Rex

关注

还未添加个人签名 2018.06.14 加入

还未添加个人简介

评论

发布
暂无评论
【架构训练 Week04 作业】