【问题标题】:PXC cluster across datacenter跨数据中心的 PXC 集群
【发布时间】:2018-04-18 01:23:22
【问题描述】:
我对 PXC 很陌生。我想知道我是否可以跨三个数据中心部署一个集群。例如:
- 节点
A在数据中心1
- 节点
B在数据中心2
- 节点
C在数据中心3
数据中心1 和数据中心2 之间的延迟很低,因为它们在同一个城市。数据中心3 离他们很远。
捐赠者只能是A 或B。这种方式怎么配置?
【问题讨论】:
标签:
percona-xtradb-cluster
【解决方案1】:
您可以像这样跨 3 个数据中心部署 PXC。但是,您不能以这种方式配置 Percona XtraDB Cluster(或通用 Galera)行为。
集群的所有成员一起工作。所有 WRITE 交易都会发送到所有节点,并且必须得到所有节点的确认(即:认证)。您的集群可以写入的最快速度是最慢节点的 RTT,在本例中为 C。
您可以将A 和B 配置为彼此的捐助者,以防其中一个出现故障。 (my.cnf:wsrep-sst-donor)
您可能会混淆某些术语。 “捐赠者”是节点将数据副本 (IST/SST) 发送到另一个节点时的状态。如果您的集群处于Primary 状态,则不会发生“捐赠”。你在考虑领导选举吗?这在 PXC 中不存在。只有简单的法定人数存在。任何节点都可以读,任何节点都可以随时写;除非您在 MySQL 中手动设置 read_only=1,否则对此没有任何限制。
您可以使用DC1: A, B、DC2: C 和DC3: D 部署一个 3 节点 PXC,使用 MySQL 异步复制作为异地备份。您必须选择 A、B、C 之一作为异步复制的“主”(确保设置 GTID)。在此设置中,D 不会成为 PXC 的一部分,不会参与认证,也不会参与法定人数;它只能用作备份。