我对PXC很新鲜。我想知道我是否可以跨三个数据中心部署集群。例如:
A
1
B
2
C
3
数据中心1
与数据中心2
之间的延迟较低,因为它们位于同一城市。数据中心3
远离他们。
A
和B
都提供了写入和阅读 C
只有完整备份并投票给A
或B
,以决定哪一个是永不提供写入或读取的捐赠者。
A
与B
C
与A
和B
异步。 捐赠者只有A
或B
。如何以这种方式配置它?
答案 0 :(得分:0)
您可以在这样的3个数据中心部署PXC。但是,您无法以这种方式配置Percona XtraDB集群(或通用Galera)行为。
群集的所有成员一起工作。所有WRITE事务都将发送到所有节点,并且必须由所有节点确认(即:认证)。您的群集可以写入的最快速度是最慢节点的RTT,在本例中为C
。
您可以将A
和B
配置为彼此的捐赠者,以防其中一个发生故障。 (my.cnf:wsrep-sst-donor
)
您可能会混淆某些条款。 “捐赠者”是节点将数据副本(IST / SST)发送到另一个节点的状态。如果您的群集处于Primary
状态,则不会发生“捐赠”。你在考虑领导人选举吗?这在PXC中不存在。只存在简单的法定人数。任何节点都可以读取,任何节点都可以随时写入;除非您在MySQL中手动设置read_only=1
,否则对此没有任何限制。
您可以做的是使用DC1: A, B
,DC2: C
部署3节点PXC,并在DC3: D
中使用MySQL异步复制作为异地备份。您必须选择A,B,C中的一个作为异步复制的“主”(确保设置GTID)。在此设置中,D
不会成为PXC的一部分,也不会参与认证而不参与法定人数;它只能作为备份。