一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
大型互联网应用系统是伴随企业业务的发展而不断演进的,业务的不断扩张对技术提出不断苛刻的要求,推进技术不断发展与进步。
- 典型的大型互联网主要要解决的问题有:
- 高并发,大流量场景;
- 需要存储与处理海量的数据;
- 需要做到高可用,7*24 小时稳定运行;
- 需要快速响应需求,快速迭代;
- 需要面对各类潜在的安全攻击。
- 典型的大型互联网应用系统主要采用的技术手段包括垂直扩展和水平扩展两种。垂直扩展的方法,即采用购置性能更好的硬件,提升网络吞吐能力来应对。水平扩展的方法,即通过增加更多服务器,组成分布式的集群来提升系统。
目前业界的互联网应用的发展历程大致如下:
- 单体应用阶段;
- 应用数据分离阶段(数据库与文件分开存放等);
- 使用缓存改善系统性能阶段;
- 使用负载均衡技术,使用应用服务器集群来改善系统的并发处理能力阶段;
- 数据库读写分离阶段;
- 使用反向代理和 CDN 加速网站响应速度阶段;
- 使用分布式文件系统和分布式数据库阶段;
- 使用 NoSQL 和搜索引擎阶段;
- 拆分业务,微服务化,中台化阶段;
- 应用智能算法阶段。
- 典型的大型互联网应用系统主要架构如下:
在不断演进的过程中,各层主要采用的技术方案包括:
1) 前端架构层:
- APP/Web 开发技术
- 浏览器/HTTP 优化技术
- CDN
- 动静分离
- 图片服务
- 反向代理
- DNS
2) 网关及应用层架构层:
- 网关架构
- 负载均衡
- 动态页面静态化
- 业务拆分
3) 服务层架构层:
- 分布式文件系统
- 分布式关系型数据库
- NoSQL 数据库
4) 后台架构层:
- 大数据平台
- 搜索引擎
- 推荐引擎
- 数据仓库
5) 运维与安全层:
- 数据采集与展示
- 数据监控与报警
- 攻击与防护
- 数据加密与解密