一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于rabbitmq的rediscluster异地同步方法及系统与流程

2021-12-15 03:14:00 来源:中国专利 TAG:

一种基于rabbitmq的redis cluster异地同步方法及系统
技术领域
1.本发明涉及数据处理相关技术领域,具体涉及一种基于rabbitmq的redis cluster异地同步方法及系统。


背景技术:

2.互联网数据中心internet data center简称idc,是电信部门对企业、商户或网站服务器提供托管的场所。随着互联网技术的发展,特别是金融科技的深入应用,越来越多的金融科技公司,特别是互联网金融科技公司,对于数据的安全性、服务的稳定性都提出了更加严苛的要求,跨idc部署应用或者同步数据,已经成为互联网软件或者应用必须解决的技术难题。
3.为了改善企业应用体验,以redis cluster为代表的缓存技术在各大软件架构中大规模应用和实践,伴随着跨idc部署的需求,redis cluster的跨idc异地同步技术也被越来越多的企业所重视。一些互联网企业基于redis的日志复制技术定制化实现,这些方案大部分实现起来都非常复杂,而且对redis的版本要求都比较高。
4.但本技术发明人在实现本技术实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:
5.现有技术中存在会同步过多冗杂数据以及出现网络故障时需要重新写入数据或数据缺失的技术问题。


技术实现要素:

6.本技术实施例通过提供了一种基于rabbitmq的redis cluster异地同步方法及系统,解决了现有技术中存在会同步过多冗杂数据以及出现网络故障时需要重新写入数据或数据缺失的技术问题。通过封装自定义客户端可兼容大多数版本,依据客户端请求确定同步数据,避免数据冗杂;将请求进行封装,构建事件队列,由第一同步生产端写入,可避免本地redis集群因为网络故障数据缺失,再由第一同步消费端对事件进行解析,达到了多互联网数据中心之间数据可选择稳定同步的技术效果。
7.鉴于上述问题,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步方法及系统。
8.第一方面,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步方法,所述方法应用于一种自定义信息异地同步系统,所述第一自定义异地同步系统包括客户端redis组件和第一同步rabbitmq组件,其中,所述方法包括:根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;通过所述第
一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;根据所述第一事件信息,获得所述第一客户端请求信息;根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群。
9.另一方面,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步系统,其中,所述系统包括:第一获得单元,所述第一获得单元用于根据第一封装指令对客户端redis组件进行封装,获得第一自定义客户端;第一请求单元,所述第一请求单元用于根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;第二获得单元,所述第二获得单元用于通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;第一构建单元,所述第一构建单元用于根据第一本地redis集群,构建第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;第三获得单元,所述第三获得单元用于在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;第四获得单元,所述第四获得单元用于通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;第五获得单元,所述第五获得单元用于根据所述第一事件信息,获得所述第一客户端请求信息;第一执行单元,所述第一执行单元用于根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群。
10.第三方面,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。
11.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
12.由于采用了根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;根据所述第一事件信息,获得所述第一客户端请求信息;根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群的技术方案,通过封装自定义客户端可兼容大多数版本,依据客户端请求确定同步数据,避免数据冗杂;将请求进行封装,构建事件队列,由第一同步生产端写入,可避免本地本地redis集群因为网络故障数据缺失,再由第一同步消费端对事件进行解析,达到了多互联网数据中心之间数据可选择稳定同步的技术效果。
13.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
14.图1为本技术实施例一种基于rabbitmq的redis cluster异地同步方法流程示意图;
15.图2为本技术实施例基于所述根据第一本地redis集群,构建所述第一同步rabbitmq组件方法流程示意图;
16.图3为本技术实施例另一种基于rabbitmq的redis cluster异地同步方法流程示意图;
17.图4为本技术实施例一种基于rabbitmq的redis cluster异地同步系统结构示意图;
18.图5为本技术实施例示例性电子设备的结构示意图。
19.附图标记说明:第一获得单元11,第一请求单元12,第二获得单元13,第一构建单元14,第三获得单元15,第四获得单元16,第五获得单元17,第一执行单元18,电子设备300,存储器301,处理器302,通信接口303,总线架构304。
具体实施方式
20.本技术实施例通过提供了一种基于rabbitmq的redis cluster异地同步方法及系统,解决了现有技术中存在会同步过多冗杂数据以及出现网络故障时需要重新写入数据或数据缺失的技术问题。通过封装自定义客户端可兼容大多数版本,依据客户端请求确定同步数据,避免数据冗杂;将请求进行封装,构建事件队列,由第一同步生产端写入,可避免本地redis集群因为网络故障而数据缺失,再由第一同步消费端对事件进行解析,达到了多互联网数据中心之间数据可选择稳定同步的技术效果。
21.申请概述
22.互联网数据中心internet data center简称idc,是电信部门对企业、商户或网站服务器提供托管的场所。随着互联网技术的发展,特别是金融科技的深入应用,越来越多的金融科技公司,特别是互联网金融科技公司,对于数据的安全性、服务的稳定性都提出了更加严苛的要求,跨idc部署应用或者同步数据,已经成为互联网软件或者应用必须解决的技术难题。为了改善企业应用体验,以redis cluster为代表的缓存技术在各大软件架构中大规模应用和实践,伴随着跨idc部署的需求,redis cluster的跨idc异地同步技术也被越来越多的企业所重视。一些互联网企业基于redis的日志复制技术定制化实现,这些方案大部分实现起来都非常复杂,而且对redis的版本要求都比较高。但现有技术中存在会同步过多冗杂数据以及出现网络故障时需要重新写入数据或数据缺失的技术问题。
23.针对上述技术问题,本技术提供的技术方案总体思路如下:
24.本技术实施例提供了一种基于rabbitmq的redis cluster异地同步方法,所述方法应用于一种自定义信息异地同步系统,所述第一自定义异地同步系统包括客户端redis组件和第一同步rabbitmq组件,其中,所述方法包括:根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费
端;在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;根据所述第一事件信息,获得所述第一客户端请求信息;根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群。
25.在介绍了本技术基本原理后,下面将结合说明书附图来具体介绍本技术的各种非限制性的实施方式。
26.实施例一
27.如图1所示,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步方法,所述方法应用于一种自定义信息异地同步系统,所述第一自定义异地同步系统包括客户端redis组件和第一同步rabbitmq组件,其中,所述方法包括:
28.s100:根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;
29.具体而言,所述第一封装指令指的是由所述第一自定义异地同步系统发出对所述客户端redis组件进行封装的指令信号;所述第一自定义客户端指的是依据所述第一封装指令对所述客户端redis组件封装之后的可以供业务方自由选择异地同步接口的客户端,封装方法举不设限制的一例:因为jedis客户端是redis java语言的通用客户端,所以优选的模拟jedis客户端的api封装客户端redis组件,得到所述第一自定义客户端,因为是模拟jedis客户端进行封装得到的客户端,所以也具有通用性,对于大多数redis版本都是适用的,避免了版本不兼容的情况出现。
30.s200:根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;
31.具体而言,所述第一业务方指的是所述第一自定义异地同步系统应用的互联网数据中心;所述第一客户端请求信息指的是所述第一业务方所述第一自定义客户端依据需求选择需要异地同步的数据,可以自主选择异地同步接口。通过所述第一客户端请求信息有选择性的调用异地同步接口,避免对一些不合理同步的数据(例如ttl特别短的数据、字节数特别大的数据)进行互联网数据中心同步,提高数据同步的效率。
32.s300:通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;
33.进一步的,基于所述通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列,步骤s300包括:
34.s310:通过所述第一自定义客户端解析所述第一客户端请求信息,对所述第一客户端请求信息基于protobuf协议进行封装,获得第一事件信息;
35.s320:调用所述第一客户端请求信息请求所述第一本地redis集群,将所述第一事件信息插入所述第一事件队列。
36.具体而言,所述第一事件信息指的是通过所述第一自定义客户端内的所述redis组件解析所述第一客户端请求信息,解析过程主要为所述第一自定义客户端可以识别处理的数据,并优选的利用所述protobuf协议将解析后的所述第一客户端请求信息封装成二进制事件;所述protobuf协议指的是开源的一个序列化框架,类似xml,json,最大的特点是基
于二进制,比传统的xml表示同样一段内容要短小得多,还可以定义一些可选字段,用于服务端与客户端通信,用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。
37.进一步的,所述第一本地redis集群指的是所述第一自定义异地同步系统用来存储互联网数据中心需同步数据的队列集群;所述第一事件队列指的即是队列集群,插入的实现方式为:通过所述第一自定义客户端内的所述redis组件调用所述第一客户端请求信息请求所述第一本地redis集群,将封装好的所述第一事件信息存储进所述第一事件队列之中。在此处调用所述第一客户端请求信息和将所述第一事件信息插入所述第一事件队列之中为不可分开的一个事务,如果本地事务失败,所述第一事件信息也无法保存,不会出现部分失败问题,保证了事务的完整性,也保证了跨互联网数据中心同步的所述redis集群的数据一致性。
38.s400:根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;
39.具体而言,所述第一同步rabbitmq组件指的是协助所述第一本地redis集群同步缓存数据的组件;所述第一同步生产端指的是将所述第一本地redis集群中同步数据的端口,在此处为二进制的事件信息;所述第一同步消费端指的是从所述第一同步生产端调用写入的同步缓存事件信息,再对所述事件信息进行解析,得到对应的所述第一客户端请求信息并同步到异地redis集群内的端口。所述第一同步生产端和所述第一同步消费端共同组成所述第一本地redis集群的所述第一同步rabbitmq组件,通过所述第一同步rabbitmq组件同步缓存数据,使得即使在网络出现故障时,所述第一本地redis集群的数据因为缓存在所述第一同步rabbitmq组件中,就不会出现丢失和重新写入的问题;因为所述第一本地redis集群的所述第一事件信息是存放在内存中的,在传输数据量很大或者网络中断时可能会丢失数据或者重新写入,而所述第一同步rabbitmq组件可以将所述第一事件信息存放在磁盘等存储介质上,且存储信息不受断电的影响,相对而言就更加稳定。
40.s500:在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;
41.进一步的,基于所述在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息,步骤s500包括:
42.s510:将所述第一事件信息写入所述第一同步生产端,判断所述第一事件信息是否写入完毕;
43.s520:若是所述第一事件信息写入完毕,则弹出所述第一事件队列;
44.s530:将所述第一同步生产端内的写入信息作为所述第一写入信息。
45.具体而言,所述第一同步生产端为了将所述第一本地redis集群所述第一事件队列中的消息及时消费到所述第一消费端,所述第一同步生产端同步过程中需要对所述第一事件队列中的多个所述第一事件信息分布式消费,将所述第一事件队列中存放的所述第一事件信息不需要解析直接写入到所述第一同步生产端即可,在确定所述第一客户端请求信息对应的所述第一事件信息都写入完成时停止,并弹出信息已被接触缓存数据压力的所述第一事件队列;所述第一写入信息指的是将所述第一事件队列中直接批量写入所述第一同步生产端,弹出后所述第一事件队列信息后,在所述第一同步生产端内多个队列存储的所
述第一事件信息。其中,所述第一同步生产端内也有多个队列对消息进行缓存,达到了提高缓存效率的技术效果。
46.s600:通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;
47.s700:根据所述第一事件信息,获得所述第一客户端请求信息;
48.s800:根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群。
49.具体而言,所述第一解析结果指的是利用所述第一同步消费端调用所述第一写入信息,根据protobuf协议将所述第一事件信息进行解析,得到二进制事件内封装的所述第一客户端请求信息;所述第一本地redis命令指的是表征需要同步数据的信息,和所述第一请求信息相对应;将所述第一客户端请求信息发送给所述第一远程redis集群,则远程的自定义客户端就会调用所述第一请求信息,得到所述第一本地redis命令信息,进行数据同步,达到跨互联网数据中心数据同步的技术效果。
50.进一步的,基于所述根据第一本地redis集群,构建所述第一同步rabbitmq组件,如图2所示,步骤s400包括:
51.s410:根据所述第一本地redis集群,获得第一事件队列数量;
52.s420:根据所述第一事件队列数量,匹配所述第一同步rabbitmq写入组件队列数量和所述第一同步rabbitmq消费组件队列数量;
53.s430:将所有所述第一同步rabbitmq写入组件队列作为所述第一同步生产端;
54.s440:将所有所述第一同步rabbitmq消费组件队列作为所述第一同步消费端;
55.s450:由所述第一同步生产端和所述第一同步消费端构成所述第一同步rabbitmq组件。
56.具体而言,所述第一事件队列数量指的是依据所述第一客户端请求信息调用的所述第一本地redis集群中的队列数目,不设限制的一例:如果是选用分发器设计所述第一本地redis集群,则因为在设计所述第一本地redis集群时,分发器设计的slot内存槽的数目为16384个,分发器指的是对所述第一本地redis集群划分内存槽的控制器;slot内存槽指的是划分完成的可存储所述第一事件信息的存储位置,所以所述第一本地redis集群中,一般最多有0

16383队列,共有16384个队列,根据所述第一事件信息调用相同数量的所述第一本地redis集群所述第一事件队列。
57.进一步的,在所述第一事件队列数量确定后,匹配可并行写入所有所述第一事件队列的所述第一同步rabbitmq写入组件队列数量和可并行解析所有所述第一写入信息的所述第一同步rabbitmq消费组件队列数量,举不设限制的一例:设计所述第一同步rabbitmq写入组件和所述第一同步rabbitmq消费组件的每个队列存储量和所述第一事件队列一样大,则匹配二倍的所述第一同步rabbitmq写入组件队列数量和二倍的所述第一同步rabbitmq消费组件队列数量,每一组写入或者解析设置两个队列,一个工作,一个备用,当其中一个故障时,另一个随时接替工作。
58.更进一步的,将所有所述第一同步rabbitmq写入组件队列作为所述第一同步生产端,将所有所述第一同步rabbitmq消费组件队列作为所述第一同步消费端,再构建成所述
第一本地redis集群的所述第一同步rabbitmq组件。因为所述第一同步rabbitmq组件可在磁盘介质上存储,但存储一般较慢,而此处采用并队列并行进程,且备用队列的设计保证写入或者解析数据的流程运行,达到了数据稳定同步传输的技术效果。
59.进一步的,基于所述第一同步消费端根据所述第一事件信息,获得所述第一客户端请求信息,如图3所示,还包括步骤s900:
60.s910:获得第一预设处理指令,对所述第一事件信息进行处理,获得第二事件信息;
61.s920:使所述第二事件信息和所述第一客户端请求信息相互关联。
62.具体而言,所述第二事件指的是当所述第一同步消费端解析出所述第一事件信息为特殊事件时,所述第一事件的特殊性可以通过所述一种自定义信息异地同步系统设定;依据所述第一预设处理指令对特殊的所述第一事件信息进行处理,举不设限制的一例为:如过期时间要将相对时间转换成绝对时间,执行幂等性命令。在得到所述第二事件信息后,将之和所述第一客户端请求信息相互关联,并执行相应的所述第一本地redis命令信息。通过对特殊事件的处理,保证了数据同步的准确性。
63.进一步的,所述方法还包括步骤s1000:
64.s1010:通过所述第一自定义客户端调用第一分发器,生成第一slotcache插件,所述第一slotcache插件和所述第一事件信息一一对应;
65.s1020:通过所述第一slotcache插件维护所述第一事件信息和所述第一事件队列的第一映射关系。
66.具体而言,所述第一分发器指的是上述常规分发器;所述第一slotcache插件指的是在上述slot内存槽中存储所述第一事件信息的高速缓冲存储器。在封装出二进制所述第一事件后,通过所述第一自定义客户端调用所述第一分发器设计所述第一slotcache插件,在slot内存槽中存储所述第一事件信息,多个插入的所述第一事件信息组成所述第一事件队列。进一步的,所述第一slotcache插件也可以存储所述第一事件和所述第一事件队列之间的映射关系,即所述第一函数关系,优选哈希函数确定函数关系。通过所述第一函数关系,可以在所述第一事件队列中快速找到所述第一事件信息。
67.更进一步的,所述方法还包括步骤s1100:
68.s1110:所述第一同步生产端通过所述第一事件队列,获得第一本地redis集群的slot队列;
69.s1120:通过所述第一同步生产端维护所述第一slot队列和所述第一同步rabbitmq写入组件队列的第二映射关系。
70.具体而言,所述第一本地redis集群的slot队列指的是和所述第一事件队列一一对应的队列信息;当所述第一同步生产端写入所述第一事件队列信息后,所述第二映射关系指的是所述第一同步生产端维护所述第一slot队列和所述第一同步rabbitmq写入组件队列的映射关系,即表征所述第一事件队列和所述第一同步rabbitmq写入组件队列之间的队列对应关系,优选通过哈希函数确定函数关系。通过所述第二函数关系,可以保护数据的稳定性,及判断是否完全写入所述第一事件信息。
71.综上所述,本技术实施例所提供的一种基于rabbitmq的redis cluster异地同步方法及系统具有如下技术效果:
72.1.由于采用了根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;根据所述第一事件信息,获得所述第一客户端请求信息;根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群的技术方案,通过封装自定义客户端可兼容大多数版本,依据客户端请求确定同步数据,避免数据冗杂;将请求进行封装,构建事件队列,由第一同步生产端写入,可避免本地redis集群因为网络故障数据缺失,再由第一同步消费端对事件进行解析,达到了多互联网数据中心之间数据可选择稳定同步的技术效果。
73.2.因为所述第一同步rabbitmq组件可在磁盘介质上存储,但存储一般较慢,而此处采用并队列并行进程,且备用队列的设计保证写入或者解析数据的流程运行,达到了数据稳定同步传输的技术效果。
74.实施例二
75.基于与前述实施例中一种基于rabbitmq的redis cluster异地同步方法相同的发明构思,如图4所示,本技术实施例提供了一种基于rabbitmq的redis cluster异地同步系统,其中,所述系统包括:
76.第一获得单元11,所述第一获得单元11用于根据第一封装指令对客户端redis组件进行封装,获得第一自定义客户端;
77.第一请求单元12,所述第一请求单元12用于根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;
78.第二获得单元13,所述第二获得单元13用于通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;
79.第一构建单元14,所述第一构建单元14用于用于根据第一本地redis集群,构建第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;
80.第三获得单元15,所述第三获得单元15用于在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;
81.第四获得单元16,所述第四获得单元16用于通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;
82.第五获得单元17,所述第五获得单元17用于根据所述第一事件信息,获得所述第一客户端请求信息;
83.第一执行单元18,所述第一执行单元18用于根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群。
84.进一步的,所述系统还包括:
85.第六获得单元,所述第六获得单元用于通过所述第一自定义客户端解析所述第一客户端请求信息,对所述第一客户端请求信息基于protobuf协议进行封装,获得第一事件信息;
86.第二执行单元,所述第二执行单元用于调用所述第一客户端请求信息请求所述第一本地redis集群,将所述第一事件信息插入所述第一事件队列;
87.进一步的,所述系统还包括:
88.第七获得单元,所述第七获得单元用于根据所述第一本地redis集群,获得第一事件队列数量;
89.第一匹配单元,所述第一匹配单元用于根据所述第一事件队列数量,匹配所述第一同步rabbitmq写入组件队列数量和所述第一同步rabbitmq消费组件队列数量;
90.第一设置单元,所述第一设置单元用于将所有所述第一同步rabbitmq写入组件队列作为所述第一同步生产端;
91.第二设置单元,所述第二设置单元用于将所有所述第一同步rabbitmq消费组件队列作为所述第一同步消费端;
92.第二构建单元,所述第二构建单元用于由所述第一同步生产端和所述第一同步消费端构成所述第一同步rabbitmq组件。
93.进一步的,所述系统还包括:
94.第一判断单元,所述第一判断单元用于将所述第一事件信息写入所述第一同步生产端,判断所述第一事件信息是否写入完毕;
95.第一弹出单元,所述第一弹出单元用于若是所述第一事件信息写入完毕,则弹出所述第一事件队列;
96.第三设置单元,所述第三设置单元用于将所述第一同步生产端内的写入信息作为所述第一写入信息。
97.进一步的,所述系统还包括:
98.第八获得单元,所述第八获得单元用于获得第一预设处理指令,对所述第一事件信息进行处理,获得第二事件信息;
99.第一关联单元,所述第一关联单元用于使所述第二事件信息和所述第一客户端请求信息相互关联。
100.进一步的,所述系统还包括:
101.第一生成单元,所述第一生成单元用于通过所述第一自定义客户端调用第一分发器,生成第一slotcache插件,所述第一slotcache插件和所述第一事件信息一一对应;
102.第一维护单元,所述第一维护单元用于通过所述第一slotcache插件维护所述第一事件信息和所述第一事件队列的第一映射关系。
103.进一步的,所述系统还包括:
104.第九获得单元,所述第九获得单元用于所述第一同步生产端通过所述第一事件队列,获得第一本地redis集群的slot队列;
105.第二维护单元,所述第二维护单元用于通过所述第一同步生产端维护所述第一slot队列和所述第一同步rabbitmq写入组件队列的第二映射关系。
106.示例性电子设备
107.下面参考图5来描述本技术实施例的电子设备,
108.基于与前述实施例中一种基于rabbitmq的redis cluster异地同步方法相同的发明构思,本技术实施例还提供了一种基于rabbitmq的redis cluster异地同步系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序,当所述程序被所述处理器执行时,使得系统以执行第一方面任一项所述的方法。
109.该电子设备300包括:处理器302、通信接口303、存储器301。可选的,电子设备300还可以包括总线架构304。其中,通信接口303、处理器302以及存储器301可以通过总线架构304相互连接;总线架构304可以是外设部件互连标(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。所述总线架构304可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
110.处理器302可以是一个cpu,微处理器,asic,或一个或多个用于控制本技术方案程序执行的集成电路。
111.通信接口303,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan),有线接入网等。
112.存储器301可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read

only memory,eeprom)、只读光盘(compact disc read

only memory,cd

rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线架构304与处理器相连接。存储器也可以和处理器集成在一起。
113.其中,存储器301用于存储执行本技术方案的计算机执行指令,并由处理器302来控制执行。处理器302用于执行存储器301中存储的计算机执行指令,从而实现本技术上述实施例提供的一种基于rabbitmq的redis cluster异地同步方法。
114.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
115.本技术实施例提供了一种基于rabbitmq的redis cluster异地同步方法,所述方法应用于一种自定义信息异地同步系统,所述第一自定义异地同步系统包括客户端redis组件和第一同步rabbitmq组件,其中,所述方法包括:根据第一封装指令对所述客户端redis组件进行封装,获得第一自定义客户端;根据所述第一自定义客户端,获得第一客户端请求信息,所述第一客户端请求信息由第一业务方自定义;通过所述第一自定义客户端解析所述第一客户端请求信息,获得第一事件队列;根据第一本地redis集群,构建所述第一同步rabbitmq组件,所述第一同步rabbitmq组件包括第一同步生产端和第一同步消费端;在所述第一同步生产端中写入所述第一事件队列,获得第一写入信息;通过所述第一同步消费端对所述第一写入信息进行解析,获得第一解析结果,其中,所述第一解析结果包括所述第一事件信息,所述第一事件信息和所述第一客户端请求信息相对应;根据所述第一
事件信息,获得所述第一客户端请求信息;根据所述第一客户端请求信息请求第一远程redis集群,将第一本地redis命令放入所述第一远程redis集群,通过封装自定义客户端可兼容大多数版本,依据客户端请求确定同步数据,避免数据冗杂;将请求进行封装,构建事件队列,由第一同步生产端写入,可避免本地本地redis集群因为网络故障数据缺失,再由第一同步消费端对事件进行解析,达到了多互联网数据中心之间数据可选择稳定同步的技术效果。
116.本领域普通技术人员可以理解:本技术中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围,也不表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a

b,a

c,b

c,或a

b

c,其中a,b,c可以是单个,也可以是多个。
117.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
118.本技术实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
119.本技术实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd

rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于终端中。可选地,处理器和存储媒介也可以设置于终端中
的不同的部件中。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
120.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术意图包括这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献