作者:邹祁峰
邮箱:Qifeng.zou.job@hotmail.com
博客:http://blog.csdn.net/qifengzou
日期:2016.08.03 10:42:40
转载请注明来自”祁峰”的CSDN博客
CODIS有一个非常重要的特点就是:支持热扩容。即:在不停止服务的情况下,实现集群设备的增减。其实现此功能的技术基础就是“数据迁移功能”。数据迁移的主要目的是将属于某codis-server组的slot的所有数据迁移到另外一个codis-server组中。
1 创建迁移任务
创建迁移任务有2中方式:一种是直接通过codis-config界面提交迁移任务;另一种是通过给codis-config发送post请求的方式提交迁移任务。但是这两种方式的处理流程是一致的。大体流程如下:
流程说明:
1.迁移指令中指明了将编号(from~to)所有slot都迁移到指定codis-server分组。
2.迁移任务的最小单位是slot。因此,本流程将会创建(to - from + 1)个slot迁移任务放入zk任务队列中。
3.注意:如果存在未完成的迁移任务时,则禁止提交新的迁移任务。
2 发起迁移指令
程序coddis-config dashboard会启一个task协程专门用来从zk中获取迁移任务