一种主从同步管理方法与流程

文档序号:11627715阅读:484来源:国知局
一种主从同步管理方法与流程

本发明涉及网络数据管理,具体涉及主从数据的同步技术。



背景技术:

随着网络技术的高速发展,各种基于网络的控制应用已经成为人们生活、工作、娱乐的重要手段。

由于应用散落在全世界各个地方,本地数据应用和集中控制数据应用在数据上的会有一定的差别,同时集中控制应用的数据也会存在数据缺失的问题。为此,需要同步本地应用和集中控制应用的业务数据,以消除它们之间的差异。但是为了同步这些应用之间的业务数据差异,需要实时或者定时的对相应的数据进行备份和处理。

现有技术中,各行各业针对自身的业务管理的需求,使用较多的是基于网络的主机-从机控制系统。但是目前的主从机数据同步技术不能满足特定业务的特定应用模块的同步,完全同步需要花费大量的时间和性能,选择性的同步仅和主机从机有关系的内容,而且对于从机来说也会需要主机或者其它设备应用的信息,在各个主机之间无法实现互相传输业务数据和特定数据。

为此,人们采用第三方的软件程序来实现数据同步,这样将造成整个控制系统需要受限于第三方的软件程序,并且使得整个系统占用资源较多。



技术实现要素:

针对现有基于网络的主从控制系统,无法实现对所有的业务数据进行精确同步的问题,本发明的目的在于提供一种主从同步管理方法,通过该方法高效对主从管理平台所有业务数据进行精确同步。

为了达到上述目的,本发明采用如下的技术方案:

一种主从同步管理方法,所述管理方法包括如下步骤:

(1)主机对所有业务数据进行拦截,并通过预配置的信息过滤掉无效的 数据,得到有效数据;

(2)对有效数据进行整理,整理完成之后通过数据库进行实时存储备份;

(3)主机将存储备份的数据通过网络实时传输至对应的从机;同时接受其它主机发来的信息。

优选的,所述步骤(1)通过aop拦截对所有业务数据进行拦截。

优选的,所述步骤(2)中在主机内存中对有效数据进行整理,将归类的有效数据进行二进制序列化转换。

优选的,所述步骤(2)中还利用sql语句的特性,进行进一步的分析,将参数点和执行语句进行分离。

优选的,所述步骤(3)中接收到其它主机发来的信息后,判断是否需要执行操作,若需要,则将接受的信息组成相应的执行命令,并执行。

优选的,所述步骤(3)中在执行命令时,首先需要判断接受的数据是否完整,如果不是完整的数据需要重新获取相应的信息;在得到正确命令之后,根据每个命令的唯一的编号和执行顺序,根据执行顺序对命令进行解析,并逐一进行执行,中间开启安全执行模式,一旦命令发生异常,立即终止这一组的命令,等待下一次的执行,并通知管理员处理;执行下一组命令,周而复始。

本发明提供的方案能将重要的信息(业务操作信息等)实时同步到平台或系统中所有的设备,有效的降低了同步时间和性能损耗;同时本方案针对在数据流的过程中会遇到相应的网络问题,在同步的过程中进行有效的check对应的数据,从而保证数据的完整性。

本发明提供的方案在应用时,对于系统的部署的应用要求也非常低,可以有效的利用陈旧的设备作为主从同步的载体设备,有效利用现有的资源。

附图说明

以下结合附图和具体实施方式来进一步说明本发明。

图1为本发明进行应用的示意图;

图2为本发明中进行sql拦截的流程图;

图3为本发明中基于sql特性过滤的示意图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

分布式系统是建立在网络之上的软件系统,分布式系统具有高度的内聚性和透明性:即每一个数据库分布节点高度自治,有本地的数据库管理系统以及每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。

在一个分布式系统中,一组独立的计算机(包括主机以及若干的从机)展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。

为了精确、高效的实现分布式中相应的主机和从机之间业务数据的同步,本发明利用系统中sql语句对应相应的操作或者业务,实现深入到代码中精准定位业务数据,通过对数据流的截获,保存并存储加密,转发,执行等过程,通过压缩减少存储空间。通过java开发的程序实现支持多平台运行真正做到了跨平台性(即实现支持不同操作系统),数据通过加密之后存贮,数据的安全性也得到了解决,同时也解决了现有数据定位不准确,执行效率过低,系统性能消耗过大等一系列的问题。

基于上述原理,本发明在具体实现时,首先,采用在程序员的在编程中习惯,利用对业务数据的熟悉,通过aop拦截对所有业务数据进行拦截,通过预配置的信息(即黑白名单的信息)过滤相应的信息(这里通过正则表达式进行过滤拦截),得到有效数据。

接着,针对得到的有效数据在内存中整理,整理完成之后实时通过数据库存储进行加密备份,这里的加密方案可通过固定协议规则进行加密。

由于所有操作数据库的操作都被会进行拦截,被拦截到的数据会进入过滤器进行黑白名单的过滤,主要通过正则表达式,对内存中的数据进行有效性过滤,有效数据经过白名单和黑名单的过滤进行了归类后,对于已经归类的数据序列化二进制的转换到数据库或者硬盘

为了保证将所有的业务操作信息进行保存,本方案还利用sql语句的特性,进行进一步的分析,将参数点和执行语句进行分离。

参见图2,其所示为本发明中sql拦截的流程图。进行sql拦截时,所有的软件(如app)的业务数据都进入到sql拦截器,该sql拦截器基于sql语句的特性进行拦截过滤,并将拦截过滤后的数据进行持久化处理。

参见图3,其所示为本发明中进行sql过滤的流程图。有由图可知,在进行过滤时,根据sql语句的特性,将整个待过滤的sql语句数据的参数点和执行语句进行分离,对sql的名称进行过滤,并将过滤后的sql名称结合参数以及完成的sql进行序列化。

接着,针对上述通过加密进行备份时,同时如果相应的主机开启同步功能(这里主机开启和关闭同步功能是通过配置文件来完成的),则将把加密后的数据通过网络同步传输到对应的“从机”(“从机”处于数据接收状态)。与此同时会开启相应的接收端程序(该接收端的程序独立运行于应用程序),由此来接受相应的其它主机发来的信息,经过解密操作及时入库操作。

另外,针对接受到的信息,在相应的配置的情况下,确定是否需要立即执行,如果需要立即执行,那么根据传输过来的执行命令和参数组成最终的执行命令,并且执行。

在进行接收端(即从机)执行的时候,首先需要判断接受的数据是否完整,如果不是完整的数据需要从“主机”重新获取相应的信息,这里可通过执行的key再次获取到此前在主机上打包的信息。得到正确命令之后,每个命令都有唯一的编号和执行顺序,通过对执行顺序的解析,逐一进行执行,中间开启安全执行模式,一旦命令发生异常,立即终止这一组的命令,等待下一次的执行,并通知管理员处理。执行下一组命令,周而复始。

据此形成的主从同步管理方案,在工作的时候只需要配置截获段和收发程序即可,内网中自动寻找相应的“主从机”(这里可通过网络扫描、注册中心或zookeeper调度来实现自动寻找),外网配置相应的接受ip的端口,程序支持灵活的配置,可定时定量的发送数据或者拦截需要的数据。每个收发端(这里的发送端即为“主机”,接收端即为“从机”)都可以进行主从动作,不仅仅是发送或者拦截,在发送的过程中还可以进行压缩处理,有效的减少流量压力。

据此,采用本方案能够减小对第三方程序的依赖,完成自身业务数据的整理数据流转,这样就可以实现主机和从机和需要看到的数据是同步的,在每台 机器上也可以分清相关的数据来源。

再者,本方案可跨平台运行,不需要匹配相应的版本号,也不收到第三方软件的限制,通过部署对应主从系统之后,脱离了其他程序的限制,收发端也做到了足够小,占用的资源也非常少,还主要针对相应的精准业务做到了处理。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1