发布信息

分布式全对等实时数据库同步方法与流程

作者:admin      2022-07-30 11:24:40     312



计算;推算;计数设备的制造及其应用技术1.本发明涉及数据同步技术领域,尤其涉及一种分布式全对等实时数据库同步方法。背景技术:2.自动化舰船控制技术在过去的十几年间得到了巨大的发展,其中重大的改进是通过将已经成熟的分散在各处的控制系统与计算机网络技术进行结合,实现监测控制从底层到上层的全连通,形成了集监测、控制、管理、决策一体的综合监测控制系统。但是由于技术发展过程的种种原因,网络上分布着不同厂商的不同种类的监控系统,每个系统只能采集和管理自己的装置或设备,每个系统在运行过程中产生实时数据,各个系统间没有冗余和备份,可靠性不高,集成复杂,因此迫切需要一个统一的数据平台来集成各个控制系统的数据,为实时、高可靠的监测控制提供支持。3.为此分布式实时数据库应运而生,分布式实时数据库的诞生有效的解决了各个监控系统数据存储的问题,使各自的实时数据可以有效的存储和处理。但各个系统的分布是实时数据库仅仅村存储了本系统的数据,无法实现与其他系统的冗余备份。技术实现要素:4.为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种分布式全对等实时数据库同步方法。5.本发明提供了一种分布式全对等实时数据库同步方法,所述方法应用于船舶综合监测控制系统,所述船舶综合监测控制系统中的每一个设备节点上部署有一个实时数据库,每一个设备节点上的实时数据库均被划分为n个存储空间,n为所述船舶综合监测控制系统中具有控制功能的设备节点的数量,所述n个存储空间用于存储来自于n个具有控制功能的设备节点的数据;6.所述方法包括:正在运行的各个设备节点对应的第一数据同步过程,所述第一数据同步过程包括:7.每一个设备节点从对应的数据采集器中获取最新测点数据,利用所述最新测点数据对该设备节点上的实时数据库中对应的存储空间进行数据更新,并向所述船舶综合监测控制系统中组播该设备节点更新数据的第一通知;8.接收到所述第一通知的设备节点从发送所述第一通知的设备节点的实时数据库中所述第一通知的发送节点对应的存储空间中获取数据,并将获取到的数据存储至所述第一通知的接收节点的实时数据库中所述第一通知的发送节点对应的存储空间中,以实现各个设备节点之间的数据更新。9.本实施例提供的分布式全对等实时数据库同步方法,当一个节点通过其数据采集器获取到最新测点数据之后,对该节点的实时数据库中该节点对应的存储空间中的数据进行更新,实现本节点的更新。然后通过组播第一通知以告知系统中的各个节点。接收到该第一通知的节点会从通知发送节点的实时数据库中通知发送节点对应的存储空间中获取数据,然后将获取的数据拷贝到通过接收节点的实时数据库中通知发送节点对应的存储空间中,实现对通知接收节点的数据更新,从而实现各个节点之间的数据同步更新。对分布在不同节点上的实时数据库中的数据进行同步,实现分布式实时数据库的数据全对等同步的目的,从而实现分布式实时数据库之间的冗余备份和分布式控制功能。附图说明10.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。11.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。12.图1为本发明实施例中船舶综合监测控制系统的系统架构图;13.图2为本发明实施例中船舶综合监测控制系统中分布式全对等实时数据库的分布示意图;14.图3为本发明实施例中分布式全对等实时数据库的空间划分示意图;15.图4为本发明实施例中分布式全对等实时数据库同步方法中的第一数据同步过程的流程示意图;16.图5为本发明实施例中分布式全对等实时数据库同步方法的整体流程示意图。具体实施方式17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。18.本发明提供一种分布式全对等实时数据库同步方法,所述方法应用于船舶综合监测控制系统,所述船舶综合监测控制系统中的每一个设备节点上部署有一个实时数据库,每一个设备节点上的实时数据库均被划分为n个存储空间,n为所述船舶综合监测控制系统中具有控制功能的设备节点的数量,所述n个存储空间用于存储来自于n个具有控制功能的设备节点的数据。19.在具体实施时,参见图1,所述船舶综合监测控制系统可以分为监控管理层、通信层和现场处理层,所述监控管理层和所述现场处理层中包括至少一个设备节点,其中:20.所述监控管理层中的设备节点可以用于:通过所述通信层接收来自于所述现场处理层的各个设备节点的采集数据;接收来自于操作人员的操作指令,并将所述操作指令通过所述通信层发送至所述现场处理层中对应的设备节点;21.所述现场处理层中的设备节点可以用于:接收来自于所述通信层的操作指令,并根据所述操作指令执行动作;采集相关数据,并将采集的相关数据通过所述通信层发送至所述监控管理层的设备节点上。22.其中,监控管理层可以以人机交互界面的形式将现场处理层采集的现场设备的监测信息、管理信息、事件和报警提供给操作员,同时接受操作人员的操控指令,将这些操控指令通过通信层发送到现场处理层进行相应的处理,监控管理层中的主要组成设备为控制台。23.其中,通信层主要完成将现场处理层采集的信息传输至监控管理层,同时将监控管理层的指令输出到现场处理层,通信层的主要组成设备为交换机、网关等。24.其中,现场处理层主要完成对现场信号的采集、应用控制序列解算、实时数据处理、控制指令执行等功能,现场处理层的主要组成设备为现场控制箱。例如,如图1所示,现场处理层中的现场控制箱连接柴油机齿轮箱、辅助设备、发电机组的配电设备等。25.为了实现高效统一的监测控制,在现场控制层的每一个现场控制箱、监控管理层的每一个控制台作为一个设备节点,每一个设备节点上可以部署有实时数据库,用于实时数据的高速存储和实时处理显示。将各个控制台和现场控制箱抽象出来的结构可以参见图2,在图2中,每一个设备节点上具备一个实时数据库,设备节点上的操控显示应用用于人员进行相关操作以及相关数据的显示,通信组件用于上下层之间的数据通信,现场控制应用用于根据操作指令执行相关动作。26.在具体实施时,所述现场处理层中包括的设备节点可以包括至少一个具有控制功能的设备节点和至少一个具有数据监测功能的设备节点,所述具有控制功能的设备节点能够产生实时数据,所述有数据监测功能的设备节点不产生实时数据。27.举例来说,在一个船舶综合监测控制系统中,有a、b、c、d四个分布式全对等实时数据库,其中a和d均是监控管理层的设备节点,a节点具有控制功能(即可以产生控制类实时数据),d节点只有数据监测功能(即不产生新的实时数据),b和c节点为现场控制层的节点,b和c均可以采集实时数据。28.在这一举例中,每一个设备节点上的实时数据库的空间划分情况可以参见图3,在图3中,由于有三个节点会产生实时数据,因此每一个节点上的实时数据库被划分为3个存储空间,即将实时数据库划分为三部分。因为这四个节点中的节点d虽然挂在系统中,但是不会产生实时数据,因此不纳入统计范围,不必为其设置一个存储空间。可见实时数据库中存储空间是按照整个系统中能够产生实时数据的最大节点数量决定的,即按照数据来源节点的最大数量决定的,即便在某一个时刻某一个或几个节点处于关机状态,没有运行,只要其在运行时能够产生实时数据,就将其纳入统计范围。29.在将每一个实时数据库划分为三部分之后,第一部分存储空间用来存储节点a产生的数据,第二部分存储空间用来存储节点b产生的数据,第三部分存储空间用来存储节点c产生的数据。其中,尽管节点d不产生实时数据,节点d上的实时数据库也划分为三部分,分别存储节点a、b、c产生的实时数据。可见,各个设备节点上的实时数据库的存储空间分布和结构都是相同的,即a节点的实时数据库的存储空间中保存有a、b、c三部分数据,b节点的实时数据库的存储空间中也保存有a、b、c三部分数据,c节点和d节点也一样,这样就构成了全对等全分布的数据库,这种存储结构是分布式实时数据库的同步的基础。其中,各个实时数据库之间可以通过以太网连接。30.本发明提供的方法包括:31.s100、正在运行的各个设备节点对应的第一数据同步过程;其中,参见图4和图5,所述第一数据同步过程包括:32.s110、每一个设备节点从对应的数据采集器中获取最新测点数据,利用所述最新测点数据对该设备节点上的实时数据库中对应的存储空间进行数据更新,并向所述船舶综合监测控制系统中组播该设备节点更新数据的第一通知;33.s120、接收到所述第一通知的设备节点从发送所述第一通知的设备节点的实时数据库中所述第一通知的发送节点对应的存储空间中获取数据,并将获取到的数据存储至所述第一通知的接收节点的实时数据库中所述第一通知的发送节点对应的存储空间中,以实现各个设备节点之间的数据更新。34.例如,节点a从节点a的数据采集器上获取到最新测点数据,然后将最新测点数据存储到节点a的实时数据库中节点a对应的存储空间中,实现在节点a的实时数据库中节点a的数据的更新。而且通过组播的方式向其余各个节点进行告知,告知节点a完成数据更新的信息,即第一通知。35.当其余任一个节点接收到第一通知后,例如,节点c接收到第一通知后,会从节点a的实时数据库中节点a对应的存储空间中获取到上述最新测点数据,然后将获取到的最新测点数据存储到节点c的实时数据库中节点a的存储空间中,实现在节点c上节点a的存储空间的数据更新。针对接收到第一通知的节点b和d也是如此,这样在节点b和d上也实现了对各自节点的实时数据库中节点a的存储空间的数据更新。36.也就是说,每个数据来源节点的实时数据库负责本节点对应的存储空间的数据更新,进一步组播数据发布工作,接收到组播通知的节点将数据来源节点更新的数据拷贝到本节点的实时数据库的对应存储空间中,实现与数据来源节点的数据同步。37.可理解的是,当一个节点通过其数据采集器获取到最新测点数据之后,对该节点的实时数据库中该节点对应的存储空间中的数据进行更新,实现本节点的更新。然后通过组播第一通知以告知系统中的各个节点。接收到该第一通知的节点会从通知发送节点的实时数据库中通知发送节点对应的存储空间中获取数据,然后将获取的数据拷贝到通过接收节点的实时数据库中通知发送节点对应的存储空间中,实现对通知接收节点的数据更新,从而实现各个节点之间的数据同步更新。对分布在不同节点上的实时数据库中的数据进行同步,实现分布式实时数据库的数据全对等同步的目的,从而实现分布式实时数据库之间的冗余备份和分布式控制功能。38.可理解的是,上述s100是在运行期间的各个设备节点之间进行的,确保正在运行的各个设备节点之间的数据同步。39.在具体实施时,本发明提供的方法还可以包括:40.s000、在设备节点开机时对应的第二数据同步过程。41.其中,所述第二数据同步过程包括:42.s010、在第一设备节点开机之后,所述第一设备节点通过心跳报文确定所述船舶综合监测控制系统中是否存在已经开机的设备节点;43.s020、若不存在,则所述第一设备节点通过对应的数据采集器获取最新测点数据,利用所述最新测点数据对所述第一设备节点的实时数据库中所述第一设备节点对应的存储空间进行数据更新,将所述第一设备节点的实时数据库中的其余存储空间中的数据标记为未知状态,启动所述第一设备节点上的实时数据库的服务,并向所述船舶综合监测控制系统中组播所述第一设备节点已经启动完成的第二通知。44.可理解的是,s000是在任意一个设备节点开机时执行的。45.例如,假设节点b的实时数据库之前是关机状态,节点b在开机后,首先通过心跳报文,检查网络上是否存在已经开机的实时数据库节点。假如节点b是第一个开机的,此时没有已经开机的实时数据库的节点,节点b开始执行作为首个开机的实时数据库节点的初始化流程。节点b首先对节点的实时数据库进行初始化,使用本节点的数据采集器获取最新测点数据,对本节点的实时数据库中节点b对应的存储空间进行数据更新。最后把本节点的实时数据库中节点a和节点c对应的存储空间中的数据均标记为未知状态,启动本节点上的实时数据库的服务,并向全系统中组播节点b完成开机启动的通知,即第二通知,从而实现节点b在开机时的数据同步过。46.在具体实施时,所述第一设备节点通过对应的数据采集器获取最新测点数据,可以具体包括:47.s1、判断所述第一设备节点对应的数据采集器是否正常工作;48.s2、若是,则通过所述第一设备节点对应的数据采集器获取最新测点数据;49.s3、否则,重启所述第一设备节点对应的数据采集器,并返回s1。50.例如,节点b在通过其数据采集器获取最新测点数据时,首先判断节点b的数据采集器是否处于正常工作状态,如果处于正常工作状态,则可以通过该数据采集器获取最新测点数据。而如果处于非正常工作状态,则重启该数据采集器,然后返回到s1中,判断重启后的数据采集器是否处于正常工作状态。51.在具体实施时,在上述基础上,如果多次重启后判断仍为非正常工作状态,则可以进行报警,以使工作人员在故障解除后再进行数据同步过程。52.在具体实施时,所述第二数据同步过程还可以包括:53.若所述船舶综合监测控制系统中存在已经开机的设备节点,则将每一个已经开机的设备节点作为一个第二设备节点,访问每一个第二设备节点,以从每一个第二设备节点的实时数据库中该第二设备节点对应的存储空间中获取数据,并将获取的数据存储至所述第一设备节点的实时数据库中该第二设备节点对应的存储空间中,实现所述第一设备节点和每一个第二设备节点之间的数据同步;所述第一设备节点通过对应的数据采集器获取最新测点数据,利用所述最新测点数据对所述第一设备节点的实时数据库中所述第一设备节点对应的存储空间进行数据更新,启动所述第一设备节点上的实时数据库的服务,并向所述船舶综合监测控制系统中组播所述第一设备节点已经启动完成的第二通知。54.例如,节点a启动时,节点b和c已经启动,节点a通过心跳报文得知节点b和节点c已经正常运行,节点a开始进入启动同步流程。节点a依次访问节点b和节点c,从节点b的实时数据库中节点b对应的存储空间中获取数据,从节点c的实时数据库中节点c对应的存储空间中获取数据,然后将从节点b的实时数据库中获取的数据存储到节点a的实时数据库中节点b对应的存储空间中,将从节点c的实时数据库中获取到的数据存储到节点a的实时数据库中节点c对应的存储空间中,实现与已经启动的节点之间的数据同步。同时节点a通过其数据采集器获取到最新测点数据,然后将最新测点数据存储到节点a的实时数据库中节点a对应的存储空间中,实现本节点的数据同步。之后便可以启动节点a的实时数据库的服务,并通过组播告知其它节点本节点已经启动完成。55.在具体实施时,所述访问每一个第二设备节点,可以包括:56.判断该第二设备节点是否处于空闲状态;57.若是,则访问该第二设备节点;58.否则,访问下一个第二设备节点,直到针对所有的第二设备节点数据获取完成。59.例如,节点a在访问节点b时,首先要判断节点b是否处于空闲状态,如果处于空闲状态,则访问节点b。如果节点b未处于空闲状态,则对节点c是否处于空闲状态进行判断,如果节点c处于空闲状态则访问节点c,否则等待直到节点c处于空闲状态后进行访问。在节点c访问后,判断此时节点b是否为空闲状态,如果处于空闲状态,则访问节点b,如果不处于空闲状态,则等待直到节点b进入空闲状态,之后对节点b进行访问。60.在具体实施时,为了保证每一个节点都能得知当前整个系统中有哪些节点处于正常运行状态,方便在正常运行的节点之间进行数据同步,每一个设备节点可以维护一个节点列表,所述节点列表中包括正在正常运行的各个设备节点的标识信息。61.在具体实施时,本发明提供的方法还可以包括:62.s200、异常处理过程。63.其中,所述异常处理过程包括:64.s210、当第三设备节点通过组播心跳指令发现第四设备节点存在异常掉线的问题时,将发生异常掉线的第四设备节点标记为异常节点,将第三设备节点的实时数据库中异常节点对应的存储空间中的数据标记为未知状态,将所述异常节点的标识信息从所述节点列表中删除,并向所述船舶综合监测控制系统中组播所述异常节点的第三通知;65.s220、接收到所述第三通知的设备节点将各自维护的节点列表中所述异常节点的标识信息删除。66.可理解的是,在每一个节点上维护者一个节点列表,在节点列表中有所有正在正常运行的节点的标识信息。但是在某一个时刻,节点a通过心跳指令感知到节点列表中的节点c在网络上异常掉线,则将发生异常掉线的节点c标记为异常节点,将节点a的实时数据库中节点c对应的存储空间中的数据标记为未知状态,然后将节点c的标识信息从节点a所维护的节点列表中删除,并通过组播的方式告知给其余各个节点。当节点b和d接收到第三通知后,会将各自维护的节点列表中的节点c的标识信息删除,从而实现对各个节点的节点列表的更新,使其存储的是正常运行的节点的标识信息,使节点c不再与其它节点保持同步,防止其对整个分布式数据库造成影响。67.在具体实施时,本发明提供的方法还可以包括:68.s300、节点恢复过程。69.其中,所述节点恢复过程包括:70.s310、在作为异常节点的第四设备节点的故障解决之后,该第四设备节点获取其余设备节点上维护的节点列表,该第四设备节点分别向所述节点列表中每一个具有控制功能的第五设备节点的实时数据库中获取所述第五设备节点对应的存储空间中的数据,将获取到的数据存储到该第四设备节点的实时数据库中所述第五节点对应的存储空间中,从该第四设备节点对应的数据采集器中获取最新测点数据,将所述最新测点数据存储至该第四设备节点的实时数据库中该第四节点对应的存储空间中,启动该第四节点的实时数据库的服务,并向所述船舶综合监测控制系统中组播该第四节点恢复正常的第四通知;71.s320、接收到所述第四通知的各个设备节点将各自维护的节点列表中增加该第四设备节点的标识信息,并开启接收该第四设备节点的数据的通道。72.可理解的是,当一个分布式实时数据库的节点发生异常,被系统从节点列表中排除之后,需要解决故障然后重新接入系统,重新接入的过程就是同步恢复的过程。73.例如,设节点b异常后进入恢复流程,节点b首先获取系统中节点列表,节点列表包括节点a、c、d,因为d节点不产生实时数据,因此具有控制功能的第五设备节点只有节点a、c。节点b首先从节点a的实时数据库中节点a对应的存储空间中获取数据,并将获取到的数据拷贝到节点b的实时数据库中节点a对应的存储空间中,从节点c的实时数据库中节点c对应的存储空间中获取数据,并将获取到的数据拷贝到节点b的实时数据库中节点c对应的存储空间中,然后从节点b的数据采集器中获取最新测点数据,并将最新测点数据存储到节点b的实时数据库中节点b对应的存储空间中,实现对节点b的实时数据库的更新,之后启动节点b的实时数据库的服务,并向系统中组播节点b恢复正常的第四通知。当然,节点b还可以在系统中获取到节点列表的基础上增加节点b的标识信息,形成自己的节点列表。74.当节点a、c、d接收到第四通知之后,将各自维护的节点列表中增加节点b的标识信息,开始接收节点b的数据。节点b成为正常运行的节点,整个分布式实时数据库进入稳定的同步运行状态。75.可理解的是,本发明中的第一设备节点、第二设备节点、第三设备节点、第四设备节点、第五设备节点仅为了在不同场景中对设备节点进行区分,以方便描述。76.可理解的是,本发明提供的方法可以针对工控网络中各个节点的实时数据库进行数据同步,实现开机时同步、运行时同步、同步异常处理、同步恢复等,对分布在不同节点上的实时数据库中的数据进行同步,实现分布式实时数据库的数据全对等同步的目的,从而实现分布式实时数据库之间的冗余备份和分布式控制功能。本发明针对的是分布在不同节点的实时数据库,实现各个节点的实时数据库中的数据同步更新、异常监测以及在异常节点恢复正常后自动加入系统运行。77.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。78.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。79.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ron/ran、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。80.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部