作业一:

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

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