我正在尝试设置跨区域Galera设置,其中DC1是主机,其余部分是从机。这里提到了类似的设置(但只有2个DC): http://galeracluster.com/documentation-webpages/weightedquorum.html#weighted-quorum-for-a-primary-and-secondary-site-scenario
DC1:
node1: pc.weight = 2
node2: pc.weight = 2
DC2:
node3: pc.weight = 0
node4: pc.weight = 0
DC3:
node5: pc.weight = 0
node6: pc.weight = 0
在其中一种失败情况下,可能会出现以下情况。
node5
变为non-primary
,而node6
保持primary
。
在这种情况下,在DC3中,我希望writes
转到node6,而读取可以转到任何节点(最好是node6)。
另一种情况可能是node5
和node6
都变成non-primary
,在这种情况下,我希望将只读查询发送到两个节点,但将“写”查询发送给拒绝了。
仅凭一个负载平衡器,我看不到任何简单的方法来实现上述目标。我应该有2个负载平衡器,一个用于读取,一个用于写入吗?
在写负载均衡器节点处于非主要状态时,应将其从LB中删除。 在读负载均衡器节点中,例如读取查询失败,或者可能只是在端口3306上无法访问它。
上述问题的可靠解决方案是什么?