使用wsrep_dirty_reads = On的Galera负载平衡;我需要2个负载均衡器进行读写吗?

时间:2018-10-22 10:50:59

标签: mysql load-balancing galera

我正在尝试设置跨区域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)。

另一种情况可能是node5node6都变成non-primary,在这种情况下,我希望将只读查询发送到两个节点,但将“写”查询发送给拒绝了。

仅凭一个负载平衡器,我看不到任何简单的方法来实现上述目标。我应该有2个负载平衡器,一个用于读取,一个用于写入吗?

在写负载均衡器节点处于非主要状态时,应将其从LB中删除。 在读负载均衡器节点中,例如读取查询失败,或者可能只是在端口3306上无法访问它。

上述问题的可靠解决方案是什么?

0 个答案:

没有答案