[发明专利]Redis-canal跨机房缓存同步系统在审
申请号: | 202011120648.4 | 申请日: | 2020-10-19 |
公开(公告)号: | CN112422628A | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 钱宇炜;马颂华;陈裕頲;黄峤睿;任龄明;毛震鹏;吴振;严永峰 | 申请(专利权)人: | 天翼电子商务有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102200 北京市昌平*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | redis canal 机房 缓存 同步 系统 | ||
1.Redis-canal跨机房缓存同步系统,其特征在于,基于Redis的复制协议实现,使用PSYNC命令实时获取Redis主节点所产生的写命令,并通过同步系统将命令在目标端机房进行重放,整个系统分为三层:控制台Apollo、节点发现和数据保留层ZK、数据同步层Redis-canal,其中,控制台Apollo负责任务配置、启动及关闭任务,跨机房集群部署;ZK为各机房独立部署,负责Redis-Canal节点的注册发现、任务调度及同步任务数据收集;Redis-Canal是Redis同步任务的最终执行者,包括canal和sync两个模块;Canal负责监听及解析redis节点命令;Sync负责redis命令跨机房写入,并处理循环复制问题;所述Redis-canal是基于Redis的复制协议PSYNC命令进行开发的,通过将自己伪装成Redis的一个SLAVE节点,从而监听并获得本机房中MASTER节点的Redis的所有操作命令,最后把这些监听到的命令在异地机房的Redis中进行重放,从而完成同步任务;并且通过优化重放算法,避免机房间出现循环复制的情况;PSYNC命令具有完整重同步和部分重同步两种模式:
完整重同步用于处理初次复制情况:完整重同步的执行步骤和SYNC命令的执行步骤基本一样,它们都是通过让主服务器创建并发送RDB文件,以及向从服务器发送保存在缓冲区里面的写命令来进行同步;
部分重同步则用于处理断线后重复制情况:当从服务器在断线后重新连接主服务器时,如果条件允许,主服务器可以将主从服务器连接断开期间执行的写命令发送给从服务器,从服务器只要接收并执行这些写命令,就可以将数据库更新至主服务器当前所处的状态;
所述部分重同步功能由以下三个部分构成:
主服务器的复制偏移量和从服务器的复制偏移量;
主服务器的复制积压缓冲区;
服务器的运行ID;
部分重同步功能中执行复制的双方为主服务器和从服务器会分别维护一个复制偏移量:
主服务器每次向从服务器传播N个字节的数据时,就将自己的复制偏移量的值加上N;
从服务器每次收到主服务器传播来的N个字节的数据时,就将自己的复制偏移量的值加上N;
通过对比主从服务器的复制偏移量,程序可以很容易地知道主从服务器是否处于一致状态;如果主从服务器处于一致状态,那么主从服务器两者的偏移量总是相同的;相反,如果主从服务器两者的偏移量并不相同,那么说明主从服务器并未处于一致状态。
2.根据权利要求1所述的Redis-canal跨机房缓存同步系统,其特征在于,所述复制积压缓冲区是由主服务器维护的一个固定长度先进先出队列,默认大小为1MB;和普通先进先出队列随着元素的增加和减少而动态调整长度不同,固定长度先进先出队列的长度是固定的,当入队元素的数量大于队列长度时,最先入队的元素会被弹出,而新元素会被放入队列;当主服务器进行命令传播时,它不仅会将写命令发送给所有从服务器,还会将写命令入队到复制积压缓冲区里面;因此,主服务器的复制积压缓冲区里面会保存着一部分最近传播的写命令,并且复制积压缓冲区会为队列中的每个字节记录相应的复制偏移量;当从服务器重新连上主服务器时,从服务器会通过PSYNC命令将自己的复制偏移量offset发送给主服务器,主服务器会根据这个复制偏移量来决定对从服务器执行何种同步操作,如下所示:
如果offset偏移量之后的数据仍然存在于复制积压缓冲区里面,那么主服务器将对从服务器执行部分重同步操作;
相反,如果offset偏移量之后的数据已经不存在于复制积压缓冲区,那么主服务器将对从服务器执行完整重同步操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011120648.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防卡顿的砌块机的布料车总成
- 下一篇:一种珠光体钢轨及其制备方法