MySQL分布式架构扩缩容的初步设计(二)

这是学习笔记的第 1834篇文章

之前总结了一篇扩缩容的初步设计,我们来做第二篇。

MySQL分布式架构扩缩容的初步设计

本次弹性扩缩容测试是尽可能在有限的服务器资源情况下对集群做扩容和缩容。 

主要目的是想实现弹性的功能。

扩容其实相对来说会容易一些,也是一种可控的实现方式,在这种方案中的主要思路就是基于GTID的双向复制,这里的双向复制是一种比较纯粹的单向复制,即节点1只负责db1,db2的写入,而双方复制的另外一个节点5只负责db3,db4的数据写入,两者不会存在交集。

所以在中间件配置扩展的基础上,需要建立双向复制关系,实现不同分片节点的数据写入,同时还保留了一份镜像数据供使用。

缩容是很少有环境去完整模拟的,在这里,有了之前的基础,其实实现起来是一种很自然的方式,本质还是通过复制的方式减少数据延迟,然后通过单向的复制关系达到数据的统一复制入口。 即db1,db2,db3,db4的分片节点数据统一有节点1来统筹,节点5只负责节点数据的复制。

缩容后的效果如下:

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )