在数据库方面,复制和分散化有什么区别?
In database terms, what is the difference between replication and decentralisation?
我目前正在研究不同的数据库以用于我的下一个项目。我想使用一个去中心化的数据库。例如 Apache Cassandra 声称是去中心化的。 MongoDB 但是说它使用复制。在我看来,就这些数据库而言,复制和去中心化基本上是一回事。这是正确的还是我遗漏了分散化和复制之间的某些 difference/feature?
简而言之,不,复制和去中心化是两个不同的东西。作为一个简单的示例,假设您有三个复制相同数据的实例(i1、i2 和 i3)。您还有一个仅从 i1 获取数据的客户端。如果 i1 出现故障,您仍会将数据复制到 i2 和 i3 作为备份。但由于 i1 已关闭,客户端无法获取数据。这是具有单点故障的集中式数据库的示例。
集中式数据库有一个集中位置,大多数请求都经过该位置。在 Mongo DB 的情况下,它可以是将查询路由到可以处理查询的实例的实例。
去中心化数据库显然是相反的。在 Cassandra 中,集群中的任何节点都可以处理任何请求。该节点称为请求的协调器。然后节点 reads/writes 数据 from/to 在将结果返回给客户端之前负责该数据的节点。
去中心化 意味着您的应用程序架构中不应存在单点故障。这些系统将提供部署方案,在服务生命周期中没有选举领导者(或主人)。这些通常以点对点方式提供服务。
Replication 意味着,只需将您的数据复制到另一个服务器实例,以确保冗余和容错。客户端请求仍然可以从副本中得到服务,但是您的系统在制作副本时应确保某种程度的 "consistency"。
Cassandra 以点对点方式处理请求。这意味着客户端可以向参与集群的任何节点发起请求。它还提供复制和可调一致性。
MongoDB 提供 master/slave 部署,因此它不被视为去中心化的。您可以交付一个多主节点,以确保在主节点出现故障时仍然可以处理请求。它还提供开箱即用的复制功能。
链接
我目前正在研究不同的数据库以用于我的下一个项目。我想使用一个去中心化的数据库。例如 Apache Cassandra 声称是去中心化的。 MongoDB 但是说它使用复制。在我看来,就这些数据库而言,复制和去中心化基本上是一回事。这是正确的还是我遗漏了分散化和复制之间的某些 difference/feature?
简而言之,不,复制和去中心化是两个不同的东西。作为一个简单的示例,假设您有三个复制相同数据的实例(i1、i2 和 i3)。您还有一个仅从 i1 获取数据的客户端。如果 i1 出现故障,您仍会将数据复制到 i2 和 i3 作为备份。但由于 i1 已关闭,客户端无法获取数据。这是具有单点故障的集中式数据库的示例。
集中式数据库有一个集中位置,大多数请求都经过该位置。在 Mongo DB 的情况下,它可以是将查询路由到可以处理查询的实例的实例。
去中心化数据库显然是相反的。在 Cassandra 中,集群中的任何节点都可以处理任何请求。该节点称为请求的协调器。然后节点 reads/writes 数据 from/to 在将结果返回给客户端之前负责该数据的节点。
去中心化 意味着您的应用程序架构中不应存在单点故障。这些系统将提供部署方案,在服务生命周期中没有选举领导者(或主人)。这些通常以点对点方式提供服务。
Replication 意味着,只需将您的数据复制到另一个服务器实例,以确保冗余和容错。客户端请求仍然可以从副本中得到服务,但是您的系统在制作副本时应确保某种程度的 "consistency"。
Cassandra 以点对点方式处理请求。这意味着客户端可以向参与集群的任何节点发起请求。它还提供复制和可调一致性。
MongoDB 提供 master/slave 部署,因此它不被视为去中心化的。您可以交付一个多主节点,以确保在主节点出现故障时仍然可以处理请求。它还提供开箱即用的复制功能。
链接