使用Mysql Fabric和ProxySQL对Mysql进行分片

原文

有很多方法可以迁移到MySQL Fabric中。他们大多数需要您的应用程序的严重更改 - 您必须切换到MySQL Fabric连接器才能真正受益于MySQL Fabric基础结构。您可能还必须在应用程序中实现某种数据感知,因为在连接到MySQL Fabric时,它必须传递分片键(用于分配给定表格的列中的某些值)。这个过程可能是不可能在一个单一的步骤,所以我们准备了一个概念证明,以显示如何迁移没有应用程序更改。

该解决方案由几个元素组成。在后台,MySQL Fabric拥有高可用性分组和工具的分片系统。另一层使用MySQL路由器构建 - 它允许常规的MySQL客户端连接到在MySQL Fabric中创建的不同的高可用性组。它并不解决将查询路由到正确的分片的问题。这是ProxySQL进行帮助的地方 - 它允许我们执行完美的故障转移(从旧数据库到分片设置),但是它也会将查询路由到由MySQL路由器暴露的正确的分片。路由是基于ProxySQL解析SQL的能力,并根据查询是否匹配正则表达式对查询执行操作(包括重新路由)。

初始环境将如下图所示。我们使用MySQL Fabric配置了两个分片 - 这使我们共有三个高可用性组(两个分片和全局组)。每个这样的组建立在主从复制中的两个MySQL节点之上。在这些组织中,MySQL Fabric将通过监视MySQL的状态来管理高可用性,并且如果需要,还可以将从属设备升级为master。每个高可用性组都配置在MySQL路由器中,它们将其全部显示在不同的端口上。我们将分片表分成两半,每个分片存储一半的分片数据集。设置的最后剩余部分是路由。
这里写图片描述
ProxySQL使我们能够根据正则表达式匹配来更改查询路由。我们需要做的是准备一组规则 - 一种用于查找分片表的每种类型的查询。我们需要准备正则表达式,将区分哪些查询要路由到第一个分片或第二个分片。此过程可能会出现错误,您需要先测试规则,然后再将其应用于生产。限制也可能在这里适用 - 您的查询必须明确使用分片键来标识行 - 类似的限制适用于MySQL Fabric或任何其他分片解决方案,因此这不是我们设置引起的约束。必须为非分片的全局表创建其他查询规则。

一旦所有查询规则都准备就绪并进行测试,就必须进行切换 - 必须从基于MySQL复制的旧设置移动流量,并根据我们创建的规则将其路由到我们的分片设置 - 这可以使用ProxySQL完成,没有任何中断你的应用程序(只要你不使用长的事务)。

当流量撞到分片设置时,另一阶段开始 - 维护分片环境。MySQL Fabric为我们提供了不同的工具 - 您可以将主机添加到高可用性组,您可以在高可用性组中提升主机。您可能还需要拆分碎片。其中一些操作在我们的设置中是透明的,有些(如分割或移动分片)需要详细的准备工作,因为它们无法使用现有的MySQL Fabric CLI命令轻松执行。

有关我们从MySQL复制到MySQL Fabric分片环境的设置和迁移的更多详细信息,请参见电子书。
电子书

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值