分布式的优势及关键技术

时间:2024-04-13 20:20:24

1. 分布式的优与劣

与传统的单体架构相比,分布式系统具有以下优势:

  • 增大了系统的容量。我们的业务量越来越大,就需要多台机器来应对这种大规模的应用场景。因此我们可以使用分布式的架构,来垂直或是水平的拆分业务;
  • 加强了系统的可用性。我们的业务越来越关键,需要提供整个系统架构的可用性,这样就不能存在单点故障。所以,通过分布式架构来冗余系统,提高系统的可用性;
  • 使系统模块化,可以提高模块的重用度,同时系统的扩展性也更高了;
  • 提高了开发和发布速度,因为软件服务模块被拆分,开发和发布都可以并行;

不过,世界上不存在完美的技术方案,采用任何技术都有得有失,都是一种trade-off。也就是说,分布式系统在消除上述问题的同时,也给我们带来了其他问题。

  • 架构设计变得复杂,尤其是分布式的事务
  • 部署变得复杂,一次可能需要部署多个服务
  • 随着系统的吞吐量变大,响应时间会变长
  • 技术可以多样性,服务变多,运维复杂度会变得很复杂
  • 测试和查错的复杂度增大,学习曲线也增大

综上所述的,分布式的优缺点可以概括为下表

选项 传统单体架构 分布式服务化架构
新功能开发 需要时间 容易开发和实现
部署 不经常且容易部署 经常部署、部署复杂
隔离性 故障影响范围大 故障影响范围小
架构设计 难度小 难度级系数增加
系统性能 响应时间快、吞吐量小 响应时间慢、吞吐量大
系统运维 运维简单 运维复杂\
技术 技术单一且封闭 技术多样性且开放
测试和查错 简单 复杂
系统扩展性 扩展性差 扩展性好
系统管理 重点在于开发成本 重点在于服务治理和调度

分布式的难点在于系统的设计,以及管理和运维。所以,分布式在架构在解决“单点”和“性能容量”问题的同时,也新增了一堆的问题。对于这些新增的问题,就需要各式各样的技术和手段来解决。

2. 分布式的关键技术

从2010年后,出现了微服务的架构,使分布式更进一步的发展,它为构造分布式的计算应用程序提供了更好的方法。这种架构更加的松耦合,每个微服务都能独立完整的运行,后端单体的数据库也被分散到不同的服务中。在服务间通过一个引擎进行服务编排或整合,一般这种引擎可以是工作流引擎,也可以是网关。再加上像容器化的调度技术(如Kubernetes)的辅助,使的分布式在当下变得更加流行。
分布式系统有以下五个关键技术:

  • 全栈系统监控
  • 服务/资源调度
  • 流量调度
  • 状态/数据调度
  • 开发和运维的自动化

而最后一项—开发和运维的自动化,是需要把前四项都做到了,才有可能实现的。所以,最为关键的是下边四项技术,即应用整体监控、资源和服务调度、状态和数据调度及流量调度,它们是构建分布式最最核心的东西。
分布式的优势及关键技术