Skip to content

知识清单 - 分布式系统

分布式系统

TODO

一、分布式系统:

  • 了解分布式系统的基本概念和架构原则。
  • 理解分布式计算、数据存储和通信模式。
    • 节点:分布式系统由多个节点组成,每个节点可以是计算机、服务器、设备或虚拟机。
    • 通信:节点之间通过网络进行通信,以实现数据传输、消息传递和远程过程调用(RPC)等操作。
    • 并行处理:分布式系统可以在多个节点上并行处理任务,以提高性能和吞吐量。
    • 数据分布:数据通常分布在不同的节点上,这可能涉及数据分片、分区和复制。
    • 负载均衡:分布式系统通常使用负载均衡来平衡不同节点上的工作负载,确保资源充分利用。
    • 容错性:分布式系统需要考虑节点故障和网络问题,因此通常实现了容错机制,以确保系统的可用性。
    • 数据一致性:在分布式系统中,确保数据的一致性是一个重要问题,需要使用各种一致性模型来管理数据。
    • 安全性:分布式系统需要保护数据和通信的安全性,通常包括身份验证、授权、加密和安全传输。
    • 扩展性:分布式系统应该容易扩展,以应对不断增长的需求。这可能涉及添加新节点、分区数据或采用微服务架构。
    • 服务发现和注册:分布式系统通常使用服务发现机制来管理节点的可用性和位置。
    • 数据复制和备份:数据复制用于提高数据的可用性和冗余。备份是一种灾难恢复策略。
    • 分布式计算模型:分布式系统通常采用不同的计算模型,如 MapReduce、流处理、RPC 等。
    • 一致性协议:分布式系统需要选择合适的一致性协议,如 Paxos、Raft 等,以确保数据一致性。
    • 事务管理:在分布式系统中,需要管理分布式事务,确保事务的原子性和一致性。
    • 监控和管理:分布式系统需要监控节点的性能和状态,并进行系统管理和故障排除。

二、分布式

分布式系统基本概念和架构原则:

1. 分布式系统概念:

  • 定义: 分布式系统是由多台计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成系统的任务。
  • 特点:
    • 分布性:系统的组件分布在不同的计算机上。
    • 并发性:系统中的多个组件可以并发地执行。
    • 缺乏全局时钟:不同计算机上的时钟可能不同步。
    • 故障独立:系统中的一个组件的故障不应影响其他组件的正常运行。

2. 分布式系统架构原则:

  • 可伸缩性(Scalability): 系统应能够方便地扩展,以满足不断增长的需求。
  • 可靠性(Reliability): 系统应能够在组件故障时保持正常运行。
  • 一致性(Consistency): 不同计算机上的组件应保持一致的状态。
  • 可用性(Availability): 系统应一直处于可用状态,即使有部分组件发生故障。
  • 容错性(Fault Tolerance): 系统应对组件故障具有一定的容忍能力。

分布式计算:

1. 分布式计算概念:

  • 定义: 将一个计算任务分解成多个子任务,分配给不同的计算机,最终将它们的计算结果汇总起来。

2. MapReduce 模型:

  • Map 阶段: 输入的数据被划分成多个小块,由不同的计算机执行映射操作。
  • Shuffle 阶段: 将映射的结果按照某种规则进行分组,以便传递给下一个阶段。
  • Reduce 阶段: 对映射结果进行汇总和计算。

分布式数据存储:

1. 分布式数据库:

  • 水平划分(Sharding): 将数据水平划分成多个分片,每个分片存储在不同的节点上。
  • 副本复制: 将数据的副本存储在不同的节点上,提高数据的可用性和容错性。

2. CAP 定理:

  • 一致性(Consistency): 所有节点看到的数据是一致的。
  • 可用性(Availability): 每个请求都会收到一个非错误的响应,而不保证它包含最新的数据。
  • 分区容忍性(Partition Tolerance): 系统在网络分区的情况下仍然能够继续工作。

分布式通信模式:

1. 远程过程调用(RPC):

  • 定义: 允许一个程序调用另一个地址空间(通常是共享网络上的另一台机器上)的过程。
  • 特点: 隐藏了远程调用的细节,使其看起来像本地调用。

2. 消息传递:

  • 定义: 不同计算机上的组件之间通过消息进行通信,可以是同步或异步的。

3. 分布式事件:

  • 定义: 通过事件和事件处理程序进行通信,组件可以发布和订阅事件。

4. 分布式共享内存:

  • 定义: 允许不同计算机上的进程共享内存空间。