分布式系统的关键特性 Key Characteristics of Distributed Systems

英文原文链接:https://www.educative.io/courses/grokking-the-system-design-interview

分布式系统的关键特性

  • 可伸缩性 Scalability
  • 可靠性 Reliability
  • 可用性 Availability
  • 效率性 Efficiency
  • 可维护性和可管理性 Serviceability or Manageability

可伸缩性/可扩展性 Scalability

可伸缩性是以应对需求的增加例如处理数据的增加,能够持续发展以支持不断增长的工作量的分布式系统都被认为是可扩展的。通常,系统的性能尽管被设计(或声称)是可扩展的,但由于管理或环境的原因,其性能随系统的扩展增大而下降。

扩展分为两种:Horizontal 水平 vs. Vertical 垂直

  • 水平扩展:增加server服务器,更容易动态实现。 例子:Cassandra和MongoDB 增加服务器。
  • 垂直扩展:在现有的server服务器上增加算力,如 CPU,RAM;局限于单个服务器,且每个服务器都有自己的上限。 例子:MySQL 从较小的服务器切换到较大的服务器,但切换时会有停机时间 downtime。

可靠性 Reliability

可靠性是指系统在给定时间段内发生故障的概率。
分布式系统中即使其中一个或多个软件或硬件组件发生故障但其也能够继续提供其服务,则被认为是可靠的。
任何出现故障的机器都可以始终由另一台正常运行的机器替换,从而确保完成所请求的任务。
实现方式:
通过软件组件和数据的冗余来实现这一目标。花费多余的数据或组件以确保每个服务器都能正常运行。
例子Amazon。户已将商品添加到他们的购物车中,系统不会丢失该商品。

可用性 Availability

可用性是指系统在特定时期内保持运行状态以执行其所需功能的时间
可用性 VS 可靠性
可靠性是一段时间内的可用性,考虑到现实世界中可能发生的全部情况。
如果系统可靠,则可用。 但是,如果可用,则不一定可靠

效率性 Efficiency

衡量系统效率的两个标准指标及其对应成本:

  • 延迟的响应时间(或延迟时间):系统某一节点发送的全局消息数,无论消息的大小
  • 在给定时间单位(例如,一秒)内处理数据的吞吐量(或带宽): 消息的大小

可维护性和可管理性 Serviceability or Manageability

系统的操作和维护是否容易。
可服务性或可管理性是指修复或维护系统的简单性和速度。如果修复故障系统的时间过长,那么可用性就会下降。可管理性需要考虑的事项包括:当问题发生时诊断和理解问题的容易程度,进行更新或修改的容易程度,以及系统操作的简单程度。

猜你喜欢

转载自blog.csdn.net/weixin_43946031/article/details/114135928