[发明专利]一种基于ZooKeeper的Redis集群方法有效
申请号: | 201810544111.7 | 申请日: | 2018-05-29 |
公开(公告)号: | CN108833503B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 刘发贵;周晓场 | 申请(专利权)人: | 华南理工大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/24 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 何淑珍;江裕强 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 zookeeper redis 集群 方法 | ||
1.一种基于ZooKeeper的Redis集群方法,其特征在于用第三方中间件ZooKeeper来提供一致性服务,统一维护Redis集群的数据分片信息,客户端通过ZooKeeper获得Redis集群的数据分片信息并建立路由算法,实现Redis集群的动态扩缩容和数据自动迁移的能力,并结合Redis-Sentinel,为每个Redis主节点配备若干个备节点,利用Redis备节点可以对Redis主节点进行数据同步复制的能力和Redis-Sentinel集群来保障Redis集群的可用性,同时通过ZooKeeper与客户端通信来将后端Redis主节点和备节点的切换信息通知给客户端,实现集群故障的自动转移,保证Redis集群的高可用性;Redis集群的数据分片信息被维护在ZooKeeper集群上,每个Redis节点对应ZooKeeper上一个znode节点,znode节点的存储的数据包括:节点是否有效,节点更新时间,Redis节点IP地址,Redis节点端口,迁移时间,节点权重,slot信息;客户端通过ZooKeeper获得Redis集群的信息并构建路由算法,并采用murmurhash3算法将Key映射到slot;Redis集群的动态扩缩容能力,具体是:当需要增删节点的时候,依据各个节点的权重重新计算每个节点负责的slot数量,并把多余的slot分配给新加入的节点或者把原来分配给被删除节点的slots回收回来重新分配给剩下的节点,并更新ZooKeeper中整个集群各个节点的数据分片信息,通知所有客户端,让所有客户端获取最新的数据分片信息并做出相应的调整。
2.根据权利要求1所述的一种基于ZooKeeper的Redis集群方法,其特征在于数据自动迁移的实现过程为:当集群发生节点增删的时候,会发现slot的迁移导致slot与Redis节点的对应关系发生变化,管理员需要在增删节点时指定相应znode节点中数据迁移时间,如果需要数据迁移,当访问数据的时候客户端会首先到新的节点访问数据,如果数据不存在则到数据原属的节点访问数据,如果数据存在则将数据迁移到新的节点并返回,否则说明数据不存在。
3.根据权利要求1所述的一种基于ZooKeeper的Redis集群方法,其特征在于客户端从ZooKeeper获得Redis集群的数据分片信息后,会建立slot与节点的映射关系和节点与客户端实例的映射关系,实现路由表,并且在数据迁移状态中,会额外维护一个临时的slot与节点的映射表,表示slot与原属节点的映射关系,方便在需要的时候数据能从旧的节点迁移到新的节点。
4. 根据权利要求1所述的一种基于ZooKeeper的Redis集群方法,其特征在于为每个Redis主节点配备了若干个备节点,并利用Redis Sentinel节点对所有的主节点和备节点进行监控,当有主节点发生故障的时候,Redis Sentinel会进行主节点和备节点的切换,并通过ZooKeeper将主节点和备节点的切换信息通知给客户端,从而实现Redis集群的故障自动迁移,保证集群的可用性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810544111.7/1.html,转载请声明来源钻瓜专利网。