mariadb - MariaDB Spider 与 Galera Clusters 故障转移解决方案
问题描述
我在尝试为实验构建数据库解决方案以确保 HA 和性能(分片)时遇到问题。
现在,我有一个spider节点和两个galera集群(每个集群3个节点),如下图所示,这个配置在一般情况下运行良好:
但是,据我所知,蜘蛛引擎在进行分片时,必须分配主IP才能将SQL语句分发到不同Galera集群中的两个节点。
所以我的第一个问题是:
Q1):当机器.12因损坏而关闭时,如何使.13或.14(其中之一)自动替换.12?
- 蜘蛛引擎知道的服务器
Q2):是否有任何开源工具(或技术)可以帮助我处理这种情况?如果是这样,请解释它是如何工作的。(也许是 MaxScale?但我从来不知道它是什么以及它能做什么。)
Q3):本次实验的动机如下。自动化工厂有很多机器,每台机器都会产生一些在生产过程中必须记录的数据(每秒可能有数百或数千条数据),以观察机器的运行情况,使每批产品的质量达到最佳。所以我的问题是:这个架构怎么样(图 1)?或请提供您的建议。
解决方案
您可以在 Galera 集群前使用 MaxScale,以使各个节点看起来像一个组合集群。这样,即使其中一个节点发生故障,Spider 也能够无缝访问分片。您可以查看MaxScale 教程,了解如何为 Galera 集群配置它。
像这样的东西应该工作:
这当然与单个数据库节点具有相同的限制:如果 MaxScale 服务器出现故障,您将不得不为该集群切换到不同的 MaxScale。使用 MaxScale 的好处是它在某种意义上是无状态的,这意味着它几乎可以立即启动和停止。网络负载平衡器(例如 ELB)已经可以针对这个问题提供某种形式的保护。
推荐阅读
- php - 钱包通行证更新(php)
- amazon-web-services - 解析 EC2 用户数据 cloudformation 模板中的动态引用
- splat - 当被 culam 解析时,如何在 NodeConstant.cpp 中找到未通过断言错误的代码?
- docker - 如果我启动 Node2,Cassndra Docker Image 会停止
- python - PySpark:导出到 SQL Server 时更改时间戳
- apache-camel - 在 Jboss Fuse 中运行 Spring Boot Camel
- list - 从 Haskell 列表中删除项目
- python - 数据库中的熊猫年数据转换为列中的年数
- html - 如何加粗标题html标签
- c# - .NET Core 程序集中的嵌入式资源命名