首页 > 解决方案 > MariaDB Spider 与 Galera Clusters 故障转移解决方案

问题描述

我在尝试为实验构建数据库解决方案以确保 HA 和性能(分片)时遇到问题。

现在,我有一个spider节点和两个galera集群(每个集群3个节点),如下图所示,这个配置在一般情况下运行良好:

在此处输入图像描述

但是,据我所知,蜘蛛引擎在进行分片时,必须分配主IP才能将SQL语句分发到不同Galera集群中的两个节点。

所以我的第一个问题是:

Q1):当机器.12因损坏而关闭时,如何使.13或.14(其中之一)自动替换.12?

在此处输入图像描述

Q2):是否有任何开源工具(或技术)可以帮助我处理这种情况?如果是这样,请解释它是如何工作的。(也许是 MaxScale?但我从来不知道它是什么以及它能做什么。)

Q3):本次实验的动机如下。自动化工厂有很多机器,每台机器都会产生一些在生产过程中必须记录的数据(每秒可能有数百或数千条数据),以观察机器的运行情况,使每批产品的质量达到最佳。所以我的问题是:这个架构怎么样(图 1)?或请提供您的建议。

标签: mariadbshardingfailovergaleramaxscale

解决方案


您可以在 Galera 集群前使用 MaxScale,以使各个节点看起来像一个组合集群。这样,即使其中一个节点发生故障,Spider 也能够无缝访问分片。您可以查看MaxScale 教程,了解如何为 Galera 集群配置它。

像这样的东西应该工作:

在此处输入图像描述

这当然与单个数据库节点具有相同的限制:如果 MaxScale 服务器出现故障,您将不得不为该集群切换到不同的 MaxScale。使用 MaxScale 的好处是它在某种意义上是无状态的,这意味着它几乎可以立即启动和停止。网络负载平衡器(例如 ELB)已经可以针对这个问题提供某种形式的保护。


推荐阅读