使用Mysql Fabric和ProxySQL对Mysql进行分片
来源:互联网 发布:mysql dba 前景 编辑:程序博客网 时间:2024/06/05 16:55
原文
有很多方法可以迁移到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分片环境的设置和迁移的更多详细信息,请参见电子书。
- 使用Mysql Fabric和ProxySQL对Mysql进行分片
- MYSQL FABRIC 分片测试
- MySQL ProxySQL读写分离使用初探
- mysql集群中间件proxysql
- 使用 ProxySQL 提高 MySQL SSL 的连接性能
- 使用 ProxySQL 提高 MySQL SSL 的连接性能
- MySQL ProxySQL读写分离实践
- mysql fabric
- MySQL Fabric
- MySQL Fabric
- 使用xtrabackup对MySQL进行备份和恢复
- 使用xtrabackup对MySQL进行备份和恢复
- MySQL Group Replication HA with ProxySQL [主节点故障切换对应用无感知]
- ProxySQL--灵活强大的MySQL代理层
- MYSQL数据库proxysql配置,实现读写分离
- mysql负载均衡-读写分离-ProxySQL
- MySQL分片
- 使用MyCat实现MySQL的分片处理和读写分离
- 阶段性学习总结--ffmpeg
- bitnami忘记登录密码
- PAT乙级1033. 旧键盘打字(20)
- apache2.4 虚拟目录配置
- pthread_create如何传递多个参数
- 使用Mysql Fabric和ProxySQL对Mysql进行分片
- 利用Mybatis-generator工具自动生成代码
- Linux下和Win7下的路由表的相关介绍
- 查看远端的服务是否开通
- 绘图利器 — Graphviz 由AT&T实验室启动的开源工具包 — DOT 图形描述语言
- LINUX的DNS怎么设置?linux下如何修改DNS地址
- Hadoop好友推荐系统-执行分类算法
- Android studio 导入ApiDemo
- 面向对象程序设计六大原则-接口隔离原则