2

我的理解是在多主数据库架构中:

  • 您有 2 个以上的数据库服务器,都充当读/写主机;和
  • 它要么由某种类型的负载均衡器来平衡这些多个主服务器之间的操作;和
  • 每当服务器读取时,它会在本地获取并返回查询的数据;和
  • 每当服务器获得写入时,它会在本地写入 + 提交,然后将写入实时复制到其他服务器(这就是系统隐式需要负载平衡器的原因,以防止相同的写入到达 2+ 个不同的主服务器同时); 和
  • 您可以进行主动/主动或主动/被动设置。使用前者,负载均衡器真正平衡了所有节点的写入。我不太了解后者(主动/被动)

因此,首先,如果我上面所说的任何内容不正确,请先纠正我或为我澄清!假设我或多或少的目标:

那么 Multi-Master 和 Peer-To-Peer (P2P) 之间的(真正)区别是什么?在 P2P 系统中,任何读取都在本地执行并返回,任何写入都在本地写入然后复制到所有对等点……所以它们不是同一个吗?!

4

2 回答 2

2

主从

  • 只有 Master 可以写入。
  • 从站从主站异步复制并仅提供读取查询。
  • 为了防止数据丢失,当至少 n 个从属也与主控一起写入时,可以将提交标记为已完成。
  • mysql

大师 - 大师或多大师

  • 任何服务器都可以读取/写入。
  • 所有服务器同步复制。所以数据总是一致的。
  • 可以配置为异步复制,但它变得类似于对等架构
  • 只有两个大师有裂脑问题。至少有 3 个主人可以解决。
  • 沙发数据库

点对点

  • 所有服务器都可以读取/写入。
  • 服务器之间的异步复制,因此 Reads 可以不同。(最终一致性)
  • 卡桑德拉,弹性搜索

领导者追随者

  • 只有领导者提供读/写服务。
  • 追随者仅异步复制。
  • 可以为 N 个跟随者配置同步复制,以防止领导者宕机时数据丢失。
  • 卡夫卡
于 2020-07-01T22:34:45.817 回答
1

它们可能看起来相似,但存在细微差别,希望这会有所帮助:

在 Active/Active 中,写入可以转到任何服务器,然后级联到集群中的其他服务器。

在主动/被动读取中,只会进入集群中的单个节点,然后级联到其他节点。

根据两种场景中的技术和实现,集群中的任何节点都可以为读取提供服务。

于 2018-03-08T16:14:28.530 回答