📜  什么是分布式系统中的复制?

📅  最后修改于: 2022-05-13 01:57:03.227000             🧑  作者: Mango

什么是分布式系统中的复制?

在分布式系统中,数据存储在网络中的不同计算机上。因此,我们需要确保数据可供用户随时使用。数据的可用性是一个重要的因素,通常通过数据复制来实现。复制是将多个数据副本保存在不同位置的做法。

为什么我们需要复制?

首先也是最重要的一点是,由于节点复制,它使我们的系统更加稳定。由于以下原因,最好在网络中拥有节点的副本:

  • 如果一个节点停止工作,分布式网络仍然可以正常工作,因为它的副本会在那里。因此,它增加了系统的容错能力。
  • 它还有助于负载共享,其中服务器上的负载在不同的副本之间共享。
  • 它提高了数据的可用性。如果创建副本并将数据存储在消费者附近,则获取数据会更容易和更快。

复制类型

  • 主动复制
  • 被动复制

主动复制:

  • 客户端的请求转到所有副本。
  • 要确保每个副本都以相同的顺序接收客户端请求,否则系统将变得不一致。
  • 不需要协调,因为每个副本以相同的顺序处理相同的请求。
  • 所有副本都响应客户端的请求。

好处:

  • 这真的很简单。主动复制中的代码始终相同。
  • 它是透明的。
  • 即使一个节点发生故障,它也可以由该节点的副本轻松处理。

缺点:

  • 它增加了资源消耗。副本数越多,所需的内存就越大。
  • 它增加了时间复杂度。如果在一个副本上进行了某些更改,则也应该在所有其他副本上进行。

被动复制:

  • 客户端请求转到主副本,也称为主副本。
  • 有更多的副本充当主副本的备份。
  • 主副本通知所有其他备份副本有关所做的任何修改。
  • 响应由主副本返回给客户端。
  • 主副本定期向备份副本发送一些信号,让他们知道它工作得很好。
  • 如果主副本发生故障,备份副本将成为主副本。

好处:

  • 资源消耗较少,因为备份服务器仅在主服务器发生故障时才发挥作用。
  • 与主动复制不同,由于不需要在所有节点副本中进行更新,因此时间复杂度也较低。

缺点:

  • 如果发生某些故障,响应时间会延迟。