架构师训练营 第 4 周作业
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
以下所有的技术和手段,主要是解决大型互联网应用在高并发场景下的高性能和高可用的问题。但本质上还是要根据业务当前阶段、现状和主要面临的问题,选择合适的技术,来帮助业务达成目标,产生价值。
前端架构
App 及 Web 开发技术
通过前端应用的快速开发来实现业务,并快速试错,持续得到市场的反馈,来调整业务方向,以更快的产生业务价值
浏览器及 HTTP 优化技术
通过前端优化技术,来提高前端应用的性能,让用户获得好的使用体验
CDN
提高静态资源访问速度,缓解数据中心的服务器压力
动静分离
将静态的资源交给web服务器,或者cdn来处理,提高响应速度和性能,减轻后台服务器的压力
图片服务
把图片服务作为单独的文件服务处理,可以解决图片下载时占用网络带宽大的问题
反向代理
隐藏服务器集群的细节
DNS
通过DNS服务来映射到离用户地理位置较近的数据中心
网关及应用层架构
网关架构
解决鉴权、负载均衡、限流、熔断、降级等问题
负载均衡
解决服务器伸缩扩容问题
动态页面静态化
提高访问速度,减轻后端服务器压力
业务拆分
将系统模块化,提高系统性能和可用性,提高开发和部署效率,但如果粒度过细,也可能反而会增加整个系统的复杂度
服务层架构
微服务架构
合理的微服务架构可以使多团队各自开发和维护独立的服务,服务可以独立部署,解决当业务和系统日益复杂所带来的低效率问题
分布式消息队列
降低系统和模块间的耦合的一种方式,在高并发下,通过消息队列的处理方式,也可以提高系统响应速度
分布式缓存
提高系统的读性能,能提高系统的响应速度,减轻后端数据库的访问压力
分布式一致性(锁)服务
解决分布式、集群环境下的业务、数据一致性问题
存储层架构
分布式文件
解决海量文件的存储问题
分布式关系数据库
解决关系型数据库在分布式环境下的高并发、高性能和高可用的架构问题
NoSQL 数据库
在对数据事务有容忍的情况下,解决一般关系数据库无法提供的分布式海量扩容问题
后台架构
大数据平台
解决海量数据处理和分析的问题
搜索引擎
利用倒排算法,提供高性能的搜索方案
推荐引擎
解决推荐的问题
数据仓库
运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
版权声明: 本文为 InfoQ 作者【Lingjun】的原创文章。
原文链接:【http://xie.infoq.cn/article/e1bc08bbe0ce3a711d338a5e0】。文章转载请联系作者。
评论