作业一:
一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
- 分层和分割
- 分层是横向切分;分割是纵向切分。
- 每个部分实现单一职责,通过依赖调用的方式实现系统功能
- 解决系统耦合性强,不利于维护和部署的问题,并能提高系统的并发处理能力和功能扩展能力。
- 分布式
- 协调切分后的模块
- 通过远程调用
- 解决单机性能瓶颈的问题,可以使用更多的计算资源,实现横向扩展
- 集群
- 作为多个部署相同应用的入口
- 实现负载均衡和路由
- 缓存
- 将数据存放在距离计算最近的位置以加快处理速度;
- 是改善软件性能的第一手段,复杂的软件设计中几乎无处不在
- 常用的缓存手段:
- CDN
- 反向代理
- 本地缓存
- 远程缓存
- 异步
- 用于实现系统解耦的手段,减少各个模块之间的直接联系。
- 常用于以下场景:
- 提高系统可用性
- 加快网站响应速度
- 消除并发访问高峰
- 冗余
- 即备份。
- 应对部分设备出现故障时的方案
- 自动化