网易分片中间件cetus扩容方案
Cetus中间件通过将数据分片,将数据分散到多个主机和实例上,突破单主机和单MySQL实例的限制,以面对不断增加的业务负载和数据,提供了数据库无限扩展的可能性。业务上线初期,根据两个因素决定分片节点的初始数量:业务的发展趋势、资源成本与性能的均衡。随着业务的发展,初期规划的分片数量如不能支撑业务请求的负载或者现有主机资源不足,就要提前规划扩容。 中间件集群扩容指的是增加后端节点,数据重新分布到新的后端节点,以达到扩容的目的。 建议成倍扩容,例如2节点扩容成4节点,4节点扩容成8节点。 选取扩容方案有几个考虑: 1)方案的复杂度 2)对线上环境影响程度 3)扩容过程可控性 4)扩容回退方案 综合考虑,选取了一个可行的扩容方案。下面用2节点的hash分片环境扩容到4节点为例详细介绍扩容方案。 tip:用hash算法将分片字段的值转换为一个极大的整数,把这个整数对另外一个整数x取余,得到余数y。x就是数据桶的总数,y是这条记录落到的桶数,桶的值范围是[0..x-1] 扩容前架构 集群有groupA和groupB分片。分片一共有8个桶:0,1,2,3桶对应数据在groupA,4,5,6,7桶的...
