跳至主要內容
分布式复制

分布式复制

复制是指:在多个节点上保存相同数据的副本,每个副本具体的存储位置可能不尽相同。复制方法可以提供冗余:如果某些节点发生不可用,则可以通过其他节点继续提供服务。复制也可以帮助提高系统性能。

复制数据,可能出于各种各样的原因:

  • 提高可用性 - 即使部分组件(可能是多台机器,甚至整个数据中心)出现故障,系统也能保持正常运行。
  • 降低访问延迟 - 将数据放置在距离用户较近的地方,从而实现更快地交互。
  • 提高读吞吐量 - 采用多副本读取,大幅度提高系统读操作的吞吐量。

钝悟...大约 54 分钟分布式分布式协同分布式协同综合分布式协同复制主从多主无主
MongoDB 复制

MongoDB 复制

副本和可用性

副本可以提供冗余并提高数据可用性。在不同数据库服务器上使用多个数据副本,可以提供一定程度的容错能力,以防止单个数据库服务器宕机时,数据丢失。

在某些情况下,副本还可以提供更大的读取吞吐量。因为客户端可以将读取操作发送到不同的服务器。在不同数据中心中维护数据副本可以提高数据本地性和分布式应用程序的可用性。您还可以维护其他副本以用于专用目的:例如灾难恢复,报告或备份。

MongoDB 副本

MongoDB 中的副本集是一组维护相同数据集的 mongod 进程。一个副本集包含多个数据承载节点和一个仲裁器节点(可选)。在数据承载节点中,只有一个成员被视为主要节点,而其他节点则被视为次要节点。


钝悟...大约 7 分钟数据库文档数据库MongoDB数据库文档数据库MongoDB复制
Redis 复制

Redis 复制

在 Redis 中,可以通过执行 SLAVEOF 命令或设置 slaveof 选项,让一个服务器去复制(replicate)另一个服务器,其中,后者叫主服务器(master),前者叫从服务器(slave)。

Redis 2.8 以前的复制不能高效处理断线后重复制的情况,而 Redis 2.8 新添的部分重同步可以解决这个问题。

关键词:SLAVEOFSYNCPSYNC命令传播心跳


钝悟...大约 12 分钟数据库KV数据库Redis数据库KV数据库Redis复制