1

我对 PXC 很陌生。我想知道我是否可以跨三个数据中心部署一个集群。例如:

  • A数据中心节点1
  • B数据中心节点2
  • C数据中心节点3

1数据中心和数据中心之间的延迟2很低,因为它们在同一个城市。数据中心3离他们很远。

  • A并且B都提供写入和读取
  • C只有一个完整的备份和投票AB决定哪一个是捐赠者,从不提供写入或读取。

  • AB

  • CA与和异步B

而捐赠者只能是Aor B。我怎样才能以这种方式配置它?

4

1 回答 1

1

您可以像这样跨 3 个数据中心部署 PXC。但是,您不能以这种方式配置 Percona XtraDB Cluster(或通用 Galera)行为。

集群的所有成员一起工作。所有 WRITE 交易都会发送到所有节点,并且必须得到所有节点的确认(即:认证)。您的集群可以写入的最快速度是最慢节点的 RTT,在这种情况下是C.

您可以配置AB成为彼此的捐助者,以防其中一个出现故障。(我的.cnf wsrep-sst-donor:)

您可能会混淆某些术语。“捐赠者”是节点向另一个节点发送数据副本 (IST/SST) 时的状态。如果您的集群处于Primary状态,则不会发生“捐赠”。你在考虑领导选举吗?这在 PXC 中不存在。只有简单的法定人数存在。任何节点都可以读,任何节点都可以随时写;read_only=1除非您在 MySQL 中手动设置,否则对此没有任何限制。

您可以做的是部署一个 3 节点 PXC,其中DC1: A, BDC2: C和 in DC3: D,使用 MySQL 异步复制作为异地备份。您必须选择 A、B、C 之一作为异步复制的“主”(确保设置 GTID)。在此设置中,D不会成为 PXC 的一部分,不会参与认证,也不会参与法定人数;它将仅用作备份。

带 ASYNC-Slave 的 3 节点 PXC

于 2018-04-17T17:23:22.957 回答