本发明涉及通信,尤其涉及一种增量数据的自动同步方法、系统、设备和介质。
背景技术:
1、业务系统、缓存、nosql存储服务、数据库等在高可靠性建设上都存在数据同步的需求,否则任何一个部分的单点都可能带来业务故障。虽然数据库、redis等成熟软件都能实现主从同步,但都不支持不同集群或不同机房的集群之间的数据同步。由于待同步的数据都由上层业务系统产生,还会存在业务系统之间的数据同步或从业务系统向不同缓存或存储服务同时同步的需求。
2、但现有的同步方法需要深入到请求的各个属性,再分别封装、处理每一个请求,不能实现将增量数据同步到任意目的端,不支持不同规模、不同配置的集群之间的增量数据同步,且应用场景有限。
技术实现思路
1、有鉴于此,本发明的目的是提供一种增量数据的自动同步方法、系统、设备和介质,可以实现不同规模、不同配置的集群之间的增量数据同步,且增加了应用场景。
2、一方面,本发明提供了一种增量数据的自动同步方法,包括以下步骤:
3、确定需要数据同步的第一网络设备,对所述第一网络设备进行初步过滤,激活并监听初步过滤之后的第一网络设备;
4、从初步过滤之后的第一网络设备中读取第一数据包,解析所述第一数据包,得到第一消息数据包;所述第一数据包的形式包括业务流量数据和预存数据;
5、根据所述第一消息数据包形成消息元数据,根据所述消息元数据和目的端的通信协议生成第二消息数据包,将所述第二消息数据包发送给目的端,以使所述目的端根据所述第二消息数据包实现数据同步;所述目的端包括服务端和中间组件。
6、可选地,所述确定需要数据同步的第一网络设备,对所述第一网络设备进行初步过滤,具体包括:
7、根据拦截地址和端口要求确定需要数据同步的第一网络设备;
8、根据链路参数、数据读取参数和所述第一网络设备的网络连接参数筛选所述第一网络设备的端口,完成初步过滤。
9、可选地,所述解析所述第一数据包,得到第一消息数据包,具体包括:
10、根据所述第一数据包的格式和内容识别所述第一数据包的通信协议;
11、根据所述第一数据包的网络连接参数和所述第一数据包的通信协议解析所述第一数据包,得到第一数据包属性参数;
12、根据所述第一数据包属性参数将所述第一数据包进行组装,得到所述第一消息数据包。
13、可选地,所述第一数据包属性参数包括源端口、目的端口、源端通信协议、目的端通信协议、序列号、响应号,其中,所述根据所述第一数据包属性参数将所述第一数据包进行组装,得到所述第一消息数据包,具体包括:
14、根据源端口、目的端口、源端通信协议、目的端通信协议、响应号的顺序进行按位或运算,得到所述第一数据包的身份识别号;
15、将具有相同身份识别号的第一数据包根据所述序列号的排序进行组装,得到第二数据包;
16、根据第一数据包的序列号确认是否存在新的第一数据包,若不存在新的第一数据包,所述第二数据包作为所述第一消息数据包。
17、可选地,所述方法还包括:
18、若存在新的第一数据包,将新的第一数据包组装到所述第二数据包中,得到新的第二数据包,直到不存在新的第一数据包,以最终得到的第二数据包作为所述第一消息数据包。
19、可选地,所述根据所述第一消息数据包形成消息元数据,具体包括:
20、检查所述第一消息数据包是否完整,若所述第一消息数据包完整,确定所述第一消息数据包的类型;所述第一消息数据包的类型包括请求和响应;
21、根据所述第一消息数据包的类型得到第一消息数据包的身份识别号;
22、根据所述第一消息数据包的身份识别号和所述第一消息数据包的属性参数形成消息元数据。
23、可选地,所述根据所述第一消息数据包的类型得到第一消息数据包的身份识别号,具体包括:
24、若所述第一消息数据包是请求,对源端口、目的端口、源段通信协议进行按位或运算,得到第一序列值,在所述第一序列值上添加所述第一消息数据包的响应号,得到所述第一消息数据包的身份识别号;
25、若所述第一消息数据包是响应,对目的端口、源端口、目的端通信协议进行按位或运算,得到第二序列值,在第二序列值上添加所述第一消息数据包的序列号,所述第一消息数据包的身份识别号。
26、可选地,所述根据所述消息元数据和目的端的通信协议生成第二消息数据包,具体包括:
27、将消息元数据按照目的端的通信协议生成待转发消息;
28、调整所述待转发消息的内容,并根据目的端的通信协议封装调整后的待转发消息,得到所述第二消息数据包。
29、可选地,所述方法还包括:
30、按照预设过滤规则对所述第一消息数据包进行筛选;
31、记录未通过筛选的第一消息数据包和未通过筛选的原因;
32、根据预设时间将所述未通过筛选的第一消息数据包和所述未通过筛选的原因,上报给服务端。
33、可选地,所述方法还包括:
34、将所有所述第二消息数据包进行存储,并按照预设路由规则将所有所述第二消息数据包分组;
35、调用与目的端的通信协议对应的目的端组件将所述第二消息数据包按照所述路由规则发送给所述目的端;
36、接收目的端的响应,根据所述目的端的响应确认第二消息数据包是否成功发送给所述目的端,若所述第二消息数据包未成功发送给所述目的端,重复执行调用与目的端的通信协议对应的目的端组件将所述第二消息数据包按照路由规则发送给所述目的端这一步骤,直到满足结束规则。
37、另一方面,本发明提供了一种增量数据的自动同步系统,所述系统包括源端、客户端和目的端,其中,
38、所述源端,用于产生第一数据包;
39、所述客户端,用于实现前面所述的一种增量数据的自动同步方法,并同步源端的增量数据;
40、所述目的端,用于根据第二消息数据包同步增量数据。
41、另一方面,本发明提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前面所述的一种增量数据的自动同步方法。
42、另一方面,本发明提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行前面所述的一种增量数据的自动同步方法。
43、实施本发明包括以下有益效果:本发明通过确定需要数据同步的第一网络设备,对所述第一网络设备进行初步过滤,激活并监听初步过滤之后的第一网络设备,从初步过滤之后的第一网络设备中读取第一数据包,解析所述第一数据包,得到第一消息数据包,所述第一数据包的形式包括业务流量数据和预存数据,可以通过业务流量数据的形式读取业务系统、中间件或存储服务任一层的增量数据,更加灵活方便;通过根据所述第一消息数据包形成消息元数据,根据所述消息元数据和目的端的通信协议生成第二消息数据包,将所述第二消息数据包发送给目的端,以使所述目的端根据所述第二消息数据包实现数据同步,所述目的端包括服务端和中间组件,可以将增量数据同步到通信协议不同的服务端和中间件,按照路由规则将增量数据发送给目的端,可以实现增量数据在不同规模、不同配置的集群之间同步,增加应用场景。