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

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

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

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

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

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

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

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

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

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

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

缩容后的效果如下:

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