CN116743539A - 一种多网冗余的分层分布式可编程容错仲裁服务系统 - Google Patents
一种多网冗余的分层分布式可编程容错仲裁服务系统 Download PDFInfo
- Publication number
- CN116743539A CN116743539A CN202310880727.2A CN202310880727A CN116743539A CN 116743539 A CN116743539 A CN 116743539A CN 202310880727 A CN202310880727 A CN 202310880727A CN 116743539 A CN116743539 A CN 116743539A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- time
- standby
- arbitration service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000008569 process Effects 0.000 claims abstract description 86
- 238000012545 processing Methods 0.000 claims abstract description 68
- 230000000694 effects Effects 0.000 claims abstract description 4
- 238000004891 communication Methods 0.000 claims description 19
- 230000003993 interaction Effects 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000003068 static effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 239000002131 composite material Substances 0.000 claims description 4
- 230000036039 immunity Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000001550 time effect Effects 0.000 claims 2
- 230000009191 jumping Effects 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 8
- 241001181114 Neta Species 0.000 description 3
- 230000032683 aging Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0273—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种多网冗余的分层分布式可编程容错仲裁服务系统,该系统包括仲裁服务进程和仲裁服务接口;仲裁服务进程包括配置更新模块、应用主备选举模块、仲裁服务主备选举模块、过期消息处理模块、实时库、多网冗余消息处理模块、时间跳变消息处理模块、消息接收模块及消息发送模块。本发明支持仲裁服务与容错应用间的网络交叉故障,仲裁服务支持自身的主备无损切换和其他分布式节点中的容错应用的无损切换,支持切换逻辑在线可编程并实时生效,可以系统运行过程中在线调整仲裁策略,不断迭代而确定最优的选举策略,且本系统支持无对时或时钟跳变环境下的正常运行,避免了对授时系统的依赖,极大提高了自动化系统的可靠性和可用性。
Description
技术领域
本发明涉及工业控制系统领域,具体来说,涉及一种多网冗余的分层分布式可编程容错仲裁服务系统。
背景技术
目前,国内外现有系统的冗余一般采用主备模式,通过应用本身通讯实现各自的主备切换,这种方式通用性差,应用开发存在大量重复工作。也有使用通用的第三方公共服务实现应用的主备选举,选举时间较长,需要至少3个节点才能选举且无法定制应用特有的选举策略,一般只适用于单网的网络环境,对分布式节点的对时要求高度一致。对于工业控制领域要求的双网或多网冗余、分层分布式的运行环境且系统对时会偶发异常,各个应用异常后需要的秒级容错,无法满足新一代自动化系统的要求。
中国授权发明公开号CN112737844A公开了一种冗余系统中主备切换的方法和装置,应用于第一服务器,方法包括:当主备状态为备用状态,且需要执行主备切换时,将第一服务器的主备状态设置为主用状态;判断第一服务器的IP地址是否为主用IP地址;若不是主用IP地址,进入切换准备模式,在该模式下丢弃收到网络数据包;将第一服务器的IP地址配置为地址协议栈中记录的主用IP地址,退出切换准备模式,与访问主用IP地址的客户端交互。通过重置切换至主用状态服务器的IP地址,每个服务器都以主用IP地址和客户端交互,发生主备切换后,客户端可以继续访问主用IP地址,无需重新查找并指定新IP地址,从而解决主备切换导致的数据交互效率降低问题。
中国授权发明公开号CN112506633A公开了一种多机冗余系统及处理方法,所述处理方法包括:步骤1:将所有装置分别与外部的各个子系统建立通信连接;步骤2:将所有装置均通过各个接口应用进程与对应的子系统建立通信连接;步骤3:具有主接口应用进程所在的装置记为活跃装置,其余装置记为睡眠装置;步骤4:检测活跃装置与各个子系统通信是否正常,若是,则继续保持当前状态,若否,则进行切换操作,得到新的主接口应用进程和辅接口应用进程;步骤5:重复步骤3和步骤4,不断进行采集子系统的设备信息,直至采集结束。本发明能够有效提高冗余机的可靠性和高可用性,以及方便软件升级。
然而,上述第一个技术方案存在以下缺陷:该方法通过重置修改第一服务器的IP地址为主用IP地址的方式实现主备切换,客户端使用主用IP地址与第一服务器通讯。在服务器切换期间会服务器会丢失客户端的网络数据。切换时采用服务器整体切换的模式,第二服务器开机且处于闲置状态,造成计算资源的浪费。服务器的切换采用修改IP地址的方式实现,当服务器出现IP地址更换失败时,会出现系统不可用的情况。且该技术方案未考虑双网或多网络的情况,导致系统可靠性降低。
第二个技术方案存在以下缺陷:该方法主要描述了通过活跃装置检测各个子系统的通讯状态,并发送切换命令往服务器,通过服务器实现接口处理机中的接口应用进程的主备切换。该方式避免了第一个技术方案中的接口处理机的整体切换,却忽视了系统的故障瓶颈。当系统中服务器故障或服务器与接口处理机通讯中断时,该接口处理机中的应用进程将无法切换,导致系统整体不可用。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种多网冗余的分层分布式可编程容错仲裁服务系统,主要是用来解决分布式应用中经常遇到的一些多节点间的应用的容错问题。系统支持分层部署,上下层网络互通时,所有节点作为一个系统运行。上下层网络中断时,本层及其下层子系统独立运行,不影响本层及其下层子系统的所有服务独立运行。上下层网络恢复时,本层网络与上层网络快速交换断面,恢复到中断前的一个系统运行。系统中的仲裁服务使用一主多备部署,使用基于运行状态的不同权重和静态优先级相结合的在线可编程逻辑容错策略快速选举出服务仲裁者。系统中唯一仲裁服务主节点负责网络中其他应用进程的主节点或主线程的主备选举,支持应用服务一主多备的部署,支持主备无损切换。支持各节点时钟不一致或时钟跳变情况下功能不受影响。本系统可以适用于大型配网、调度、轨道综控等自动化系统中,统一解决这些自动化系统中的应用冗余切换、应用管理问题,从而可以有效地克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
一种多网冗余的分层分布式可编程容错仲裁服务系统,该系统包括仲裁服务进程和仲裁服务接口;
仲裁服务进程,用于提供功能服务,并根据角色的不同运行对应的模块;
仲裁服务接口,用于实现应用进程与仲裁服务节点的交互,发送应用进程的认证消息,接收应用进程的主备节点信息和其他交互信息,确定本应用的主节点和应用间交互的内容。
进一步的,仲裁服务进程包括配置更新模块、应用主备选举模块、仲裁服务主备选举模块、过期消息处理模块、实时库、多网冗余消息处理模块、时间跳变消息处理模块、消息接收模块及消息发送模块;
配置更新模块,用于负责在线监测节点的配置文件和可编程逻辑文件的变更;
应用主备选举模块,用于利用配置的选举逻辑在若干节点上选举应用进程的主备节点;
仲裁服务主备选举模块,用于利用配置的选举逻辑从若干节点中选举出仲裁服务的主节点,并将该信息存入实时库;
过期消息处理模块,用于检索实时库中带时限的消息,并在消息过期时将其从实时库中删除,同时通知订阅该消息的节点;
实时库,用于存储系统中的各种节点状态、各个应用的主备信息及各个应用分布式存储的其他自定义信息,并提供状态的查询功能;
多网冗余消息处理模块,用于从多个网络接收其他节点发送的消息,负责对消息去重,并根据消息类型路由到其他处理模块,还用于与实时库相配合实现仲裁服务的无损切换和应用进程的无损切换;
时间跳变消息处理模块,用于检查本节点是否发生时间跳变,并在主节点直接记录时间跳变信息,在备节点记录跳变信息的同时处理从主节点接收的消息时标的转换,确保主备切换时带时效消息的正确处理;
消息接收模块,用于从多个网段订阅其他节点发送的消息,记录日志并发送给多网冗余消息处理模块进行进一步的处理;
消息发送模块,用于将多网冗余消息处理模块发送的消息可靠的发送给订阅该消息的节点。
进一步的,该系统支持分层部署,在双网或多网环境下,上下层任一网络连通时,所有节点作为一个系统运行,上下层网络全部中断时,本层子系统独立运行,上下层网络恢复时,本层网络与上层网络快速交换断面,恢复到中断前的一个系统运行。
进一步的,仲裁服务进程收到节点配置变化后实时处理并生效,若可编程逻辑文件的变更且节点角色是主节点或备节点,则收到通知后进行主备选举逻辑的变更。
进一步的,配置的选举逻辑根据节点运行状态和静态优先级进行在线可编程逻辑选举;
其中,仲裁服务主节点的选举和应用服务的主备选举根据节点的CPU利用率、内存利用率、若干网络的通讯状态及若干网络通讯速率的运行状态的不同权重和瞬时静态优先级相结合的复合容错策略来实现。
进一步的,根据消息类型路由到其他处理模块包括:
判断消息的类型,若为认证类消息则发送给应用主备选举模块,若为普通消息则存储入实时库,若为带时限的消息则进行时间跳变消息处理后存储入实时库。
进一步的,仲裁服务的无损切换包括:
仲裁服务的备节点通过消息接收模块同时接收其他应用和仲裁服务主节点发送的带识别码的同一消息;
当仲裁服务的备节点收到其他应用发布的消息时,则将该消息缓存入本节点的实时库并打上发送源标记和主节点未处理标记;
当仲裁服务的备节点随后收到主节点转发的该消息时,则在该消息上打上已由主节点处理的标记;
仲裁服务的备节点若只接收到应用发送的消息而未接收到主节点转发的该消息,且此时仲裁服务的主节点异常而备节点切换为主节点时,则继续处理带未处理标记的消息,处理后发布到其他应用,从而实现仲裁服务的无损切换。
进一步的,应用进程的无损切换包括:
应用进程的主节点通过仲裁服务接口发送已处理的消息,该消息通过仲裁服务主节点的消息接收模块接收后,发送给所有该应用进程的备节点;
应用进程的备节点通过接收该消息明确主节点的消息处理进度,从而在发生主备切换时无损继续消息的处理。
进一步的,经过主备节点切换后,备节点的所有带时效消息即具备本机的单调时钟,与绝对时间无关,从而实现仲裁主备节点切换时的带时效消息处理与绝对时间无关。
进一步的,时间跳变消息处理模块在检查本节点是否发生时间跳变,并在主节点直接记录时间跳变信息,在备节点记录跳变信息的同时处理从主节点接收的消息时标的转换,确保主备切换时带时效消息的正确处理时包括:
仲裁服务主节点在接收到其他节点中应用的认证信息后利用单调时间对该消息设置本机失效时标;
仲裁服务备节点启动后从主节点同步各个应用的认证信息断面,同时接收到主节点的实时转发的其他节点上应用的认证信息后,利用单调时间对该消息设置本机失效时标,备节点同时记录主节点和本机的单调时间差;
当备节点启动时从主节点拉取消息断面,且该断面未包含备节点本身的单调时间,当备节点从主节点接收断面信息时,从该断面消息中提取主节点的单调时间,并与本身的单调时间比较计算出单调时间差,为每个断面消息写入本机的单调时间;
当仲裁服务主节点失效时,备用仲裁服务节点立刻接管,使得绝对时间的跳变不对本机的消息是否失效的判断产生影响,实现对节点时钟跳变免疫。
本发明的有益效果为:本发明设计了一种多网冗余的分层分布式可编程容错仲裁服务系统,可以在支持分层分布式网络架构情况下提供了多网冗余的容错仲裁服务,支持仲裁服务与容错应用间的网络交叉故障。仲裁服务支持自身的主备无损切换和其他分布式节点中的容错应用的无损切换,支持切换逻辑在线可编程并实时生效,可以系统运行过程中在线调整仲裁策略,不断迭代而确定最优的选举策略。并且本系统支持无对时或时钟跳变环境下的正常运行,避免了对授时系统的依赖,极大提高了自动化系统的可靠性和可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统的结构框图;
图2是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中仲裁服务进程的结构框图;
图3是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中分层分布式部署的容错仲裁服务的原理图;
图4是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中仲裁服务选举流程图;
图5是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中应用进程的主备容错选举流程图;
图6是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中容错仲裁服务的无损切换的原理图;
图7是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中容错应用的无损切换的原理图;
图8是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中多网络情况下的网络交叉故障原理图;
图9是根据本发明实施例的一种多网冗余的分层分布式可编程容错仲裁服务系统中时钟跳变免疫过程示意图。
图中:
1、配置更新模块;2、应用主备选举模块;3、仲裁服务主备选举模块;4、过期消息处理模块;5、实时库;6、多网冗余消息处理模块;7、时间跳变消息处理模块;8、消息接收模块;9、消息发送模块。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了一种多网冗余的分层分布式可编程容错仲裁服务系统。
现结合附图和具体实施方式对本发明进一步说明,如图1-图9所示,根据本发明实施例的多网冗余的分层分布式可编程容错仲裁服务系统,该系统包括仲裁服务进程和仲裁服务接口;
仲裁服务进程,提供系统所有的功能处理,分为仲裁主节点、备节点、客户端角色,不同的角色功能模块组成相同,根据角色不同运行对应的模块;
仲裁服务接口,用于实现应用进程与仲裁服务节点的交互,发送应用进程的认证消息,接收应用进程的主备节点信息和其他交互信息,确定本应用的主节点和应用间交互的内容。
具体的,系统支持分层部署,双网或多网环境下,上下层任一网络连通时,所有节点作为一个系统运行。上下层网络全部中断时,本层子系统独立运行,不影响本层及其他层子系统的所有服务独立运行。上下层网络恢复时,本层网络与上层网络快速交换断面,恢复到中断前的一个系统运行。
系统中的节点按其功能和层级进行分组,并分配一个组名,同一组的节点角色互相对等,其中每组分配有两个以上的候选仲裁节点,根据系统的规模可以部署几十或上千节点,每层的候选仲裁节点选举产生一个仲裁服务主节点,为本层子系统提供仲裁服务。仲裁主节点在上下层网络通讯正常时,与上层网络的仲裁服务主节点保持通讯并交换上下层的节点信息。当本层系统与上层系统通讯中断时,本层及其下层系统独立运行。其运行结构如下图3所示。
在一个实施例中,仲裁服务进程包括配置更新模块1、应用主备选举模块2、仲裁服务主备选举模块3、过期消息处理模块4、实时库5、多网冗余消息处理模块6、时间跳变消息处理模块7、消息接收模块8及消息发送模块9;
配置更新模块1,负责在线监测节点的配置文件和可编程逻辑文件的变更。仲裁服务进程收到节点配置变化后实时处理并生效。如果是可编程逻辑文件的变更且节点角色是主节点或备节点,则收到通知后进行主备选举逻辑的变更;
应用主备选举模块2,负责选举多个节点上的应用进程的主备选举。本模块只运行在仲裁服务主节点。本模块通过多网冗余消息处理模块6接收所有节点上的各个应用进程的认证消息,通过配置的选举逻辑选出不同应用进程的主备节点;
仲裁服务主备选举模块3,该模块只有节点角色是主节点或备节点的仲裁服务进程才会运行。系统启动后会通过多网冗余消息处理模块6和消息发送模块9在多个网络上发送自身的节点信息,通过配置的选举逻辑从多个节点中选举出仲裁服务的主节点,并将该信息存入实时库5,并发送;
具体的,配置的选举逻辑根据节点运行状态和静态优先级进行在线可编程逻辑选举;
具体的,仲裁节点和应用服务的主备选举具有根据节点的CPU利用率、内存利用率、多个网络的通讯状态、多个网络通讯速率、节点温度、节点功耗、其他传感器采样值等运行状态的不同权重和静态优先级相结合的复合容错策略,每个运行状态可以作为在线可编程逻辑的输入参数,根据逻辑的不同选出最适合的节点作为服务的主节点,支持单节点情况下可以选举出主节点运行。用户可在配置文件中根据这些输入参数在线编程调整选举的策略,也可以选择使用默认提供的策略。默认策略使用网络状态作为最高优先级,所有网络接口连接正常的节点会优先成为主节点。同时配置有不同节点的优先级,该优先级可以作为多个网络条件相同时的叠加选举条件,选举过程只在主节点失效的瞬时进行,不会导致主节点正常运行过程中被抢占,确保业务的平稳运行。其整体选举逻辑如下图4所示。
为了支持在线调整选举的逻辑,选举过程中会定时读取可编程逻辑。该逻辑是一组可计算机解析的计算公式文本,该文本通过文本编辑器编写保存后可通过仲裁服务同步更新到其他节点。该计算公式主要输入选取节点时所需的输入,并输出一个权重值。其可编程逻辑参考示例如下:
function get_priority(neta,netb,load)
load = 100 - floor(load); //对CPU负荷取整,负荷越大则权重越小
return neta*100 +netb*100+load;
end
该逻辑获取一个候选的仲裁服务节点的权重,其权重的计算由A网网络状态neta,B网网络状态netb和CPU负荷组成,该逻辑的计算结果是返回一个A网、B网通讯状态正常情况下CPU网络负载最低的节点的权重值,负荷越低权重越大。
仲裁服务和应用进程的容错选举可复用该可编程逻辑。系统启动时先选举出本层的仲裁服务主节点,随后通过该仲裁服务主节点根据默认逻辑或用户自定义的可编程逻辑选出应用进程的主节点。应用进程的选举过程如下图5所示。
不同节点上运行的相同应用进程定时向本层的仲裁服务主节点发送自己的带超时时间的认证消息,认证消息中标识有应用运行所在的节点名、进程号、线程号以及应用自定义的供容错选举可编程逻辑需要的参数。主节点根据应用的这些参数调用可编程逻辑的定义计算各个节点上这些应用的权重值选出最优的节点上的应用进程或应用线程作为主。当主应用故障或退出时,将无法发送认证消息给仲裁服务主节点,主节点判断该应用超时而启动新的应用主节点或主线程的选举流程。
过期消息处理模块4,该模块检索实时库中带时限的消息,当该消息过期时从实时库中删除,并将删除该消息通知到其他订阅该消息的节点;
实时库5,该模块用于存储系统中的各种节点状态,各个应用的主备信息,各个应用需要分布式存储的其他自定义信息,并提供状态的查询功能;
多网冗余消息处理模块6,该模块从多个网络接收其他节点发送的消息,负责对消息去重,并根据消息类型路由到其他处理模块。如果是认证类消息则发送给应用主备选举模块,如果是普通消息则存储入实时库。如果是带时限的消息则进行时间跳变消息处理后存储入实时库。本模块与实时库5配合工作时,可实现仲裁服务的无损切换和应用进程的无损切换。仲裁服务的备节点通过消息接收模块8同时接收其他应用和仲裁服务主节点发送的带识别码的同一消息。当备节点收到其他应用发布的消息时,会将该消息缓存入本节点的实时库并打上发送源标记和主节点未处理标记。当备节点随后也收到主节点转发的该消息时,会在该消息上打上已由主节点处理的标记。备节点如果只接收到了应用发送的消息而未接收到主节点转发的该消息,且此时主节点异常而备节点切换为主节点时,会继续处理带未处理标记的消息,处理后发布到其他应用,从而实现仲裁服务的无损切换。
具体的,仲裁服务和应用进程的无损切换如下:
互相冗余的仲裁服务在切换时不会导致信息的丢失。多个仲裁服务主备节点在运行过程中会同时接收其他节点发送的带唯一识别码的消息,备节点会缓存该消息。同时仲裁服务主节点会发送已处理的消息给仲裁服务备节点,备节点接收到该消息后确认主节点已处理该消息后从本节点的缓存删除该消息。当仲裁主节点故障退出后,新选出的备节点会继续处理缓存中未处理的消息,从而确保仲裁服务的无损切换和运行。其切换过程示意如下图6所示。
互相冗余的容错应用在切换时不会导致任务处理的中断或信息的丢失,应用进程主节点通过仲裁服务端主节点与其他应用进程的备节点互相通讯实现无损切换,该通讯在多网络的情况下,支持应用与总裁服务主节点间网络交叉故障。相同的应用进程各自运行在不同的节点,并收到相同的处理任务列表,应用进程的主节点会对队列中的任务进行处理,并发布任务的处理结果。应用进程的备节点接受主节点的处理结果并移除已处理的任务。其无损切换的示意图如下图7所示。
容错应用和仲裁服务节点在具备多网通讯的情况下,仲裁服务主节点会在所有网络向客户端发送相同的带唯一标识的信息。不同节点的相同容错应用只要有任一网络与仲裁服务主节点通讯正常,即可确保信息交换正常,从而实现网络交叉中断情况下的正常运行。网络交叉故障示意图如下图8所示。
应用的无损切换的功能主要由多网冗余消息处理模块6、消息接收模块8及消息发送模块9配合实现。应用的主节点通过仲裁服务接口模块发送已处理的消息,该消息通过仲裁主服务节点的消息接收模块8接收后,发送给所有该应用的备节点。应用的备节点通过接收该消息明确主节点的消息处理进度,从而能在发生主备切换时无损继续消息的处理;
时间跳变消息处理模块7,该模块主要负责检查本节点是否发生时间跳变,在主节点直接记录时间跳变信息。在备节点除了记录跳变外,负责处理从主节点接收的消息时标的转换,确保主备切换时带时效消息的正确处理。经过转换后,备节点的所有带时效消息即具备本机的单调时钟,与绝对时间无关,从而实现仲裁主备节点切换时的带时效消息处理与绝对时间无关;
具体的,绝对时间无关的分布式带时效消息的处理,仲裁节点切换时该时效继续有效;
各个节点中的容错进程定时发送带时效的认证消息给仲裁服务主节点,仲裁服务主节点通过该消息来确保主容错进程正常运行,本系统使用单调时间(单调递增的时间戳)作为消息的时标。单调时间一般只能用于本节点的时间进行比较,为了在跨节点切换时消息的时效正常有效,系统对该单调时标做了跨节点的同步和转换。仲裁服务主节点在接收到其他节点中应用的认证信息后会用单调时间对该消息设置本机失效时标。仲裁服务备节点启动后会从主节点同步各个应用的认证信息断面,同时接收到主节点的实时转发的其他节点上应用的认证信息后也会用单调时间对该消息设置本机失效时标,这部分消息同时具有主节点和本节点的时效时标,备节点同时记录主节点和本机的单调时间差。当备节点启动时会从主节点拉取消息断面,该断面未包含备节点本身的单调时间。当备节点从主节点接收断面信息时,会从该断面消息中提取主节点的单调时间,并与本身的单调时间比较计算出单调时间差,为每个断面消息写入本机的单调时间。这样每一台备仲裁服务节点都记录了使用本机单调时间标注的失效时标,当仲裁服务主节点失效时,备用仲裁服务节点可以立刻接管,无论绝对时间如何跳变,不对本机的消息是否失效的判断产生影响,从而实现对节点时钟跳变免疫。
图9描述了仲裁主节点向一个仲裁备用节点发送断面消息和实时消息时时标的转换过程。
为了确保仲裁节点的无损切换,仲裁备节点总是先接收容错进程的认证消息的断面,随后接收实时的认证消息。断面消息发送时,仲裁主节点发送消息的过期单调时标和本机发送时的单调时标给备仲裁节点。备仲裁节点接收到仲裁主节点发送的断面消息的过期时标t1,同时记录接收到该消息时的本机单调时标tr和主节点发送时的时标tm。对该断面消息进行保存时,会把仲裁主节点的过期时标t1转换为本机的消息过期时标t2。转换公式如下:t2=tr-tm+t1。
对于实时消息,仲裁主节点直接发送该消息的过期间隔(单位毫秒),备节点接收后直接将接收时间加上过期间隔就是该消息的过期时间。至此所有消息的过期时间都在备节点保存为本机的单调时间,无论仲裁节点的绝对时间如何跳变,仲裁主节点发生切换时,备节点上所有的消息都有本地的过期时标,不影响该消息的过期判断。
消息接收模块8,该模块负责从多个网段订阅其他节点发送的消息,记录日志并发送给多网冗余消息处理模块6进行进一步的处理;
消息发送模块9,该模块负责将多网冗余消息处理模块6发送的消息可靠的发送给订阅该消息的节点,该消息发送中包含发送的目的网络选项,该模块可选择性的发送到某个网络或全部网络。
综上所述,本发明提供了一种多网冗余的分层分布式可编程容错仲裁服务系统,即提供了一种高冗余网络环境下大型自动化系统适用的容错仲裁服务。
仲裁服务支持多层级的系统部署,层间任一网络连通时系统表现为一个整体仲裁系统运行。层间网络断开时,每层的冲裁服务独立运行,具有高可用性。
系统启动时,会首先选举出仲裁主节点,随后由主节点选举中本层网络中的节点中各个容错应用的主节点,支持仲裁主节点的无损切换和各个容错应用的无损切换。
仲裁主节点的选举和容错应用的选举时,会利用服务自身采集的及节点的CPU利用率、内存利用率、多个网络的通讯状态、多个网络通讯速率等运行状态的不同权重和瞬时静态优先级相结合的复合容错策略,该策略支持在线可编程,动态选出最适合的节点作为仲裁主节点和容错应用的主节点。
仲裁服务运行过程中,不依赖卫星对时装置授时,可以在各个节点时间不同步的情况下正常运行,也可以在节点的时钟随机前后跳变的情况下正常运行,仲裁服务主备节点和容错应用正常无损切换,可确保自动化系统的高可用和高可靠运行。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,该系统包括仲裁服务进程和仲裁服务接口;
所述仲裁服务进程,用于提供功能服务,并根据角色的不同运行对应的模块;
所述仲裁服务接口,用于实现应用进程与仲裁服务节点的交互,发送应用进程的认证消息,接收应用进程的主备节点信息和其他交互信息,确定本应用的主节点和应用间交互的内容。
2.根据权利要求1所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述仲裁服务进程包括配置更新模块(1)、应用主备选举模块(2)、仲裁服务主备选举模块(3)、过期消息处理模块(4)、实时库(5)、多网冗余消息处理模块(6)、时间跳变消息处理模块(7)、消息接收模块(8)及消息发送模块(9);
所述配置更新模块(1),用于负责在线监测节点的配置文件和可编程逻辑文件的变更;
所述应用主备选举模块(2),用于利用配置的选举逻辑在若干节点上选举应用进程的主备节点;
所述仲裁服务主备选举模块(3),用于利用配置的选举逻辑从若干节点中选举出仲裁服务的主节点,并将该信息存入实时库;
所述过期消息处理模块(4),用于检索实时库中带时限的消息,并在消息过期时将其从实时库中删除,同时通知订阅该消息的节点;
所述实时库(5),用于存储系统中的各种节点状态、各个应用的主备信息及各个应用分布式存储的其他自定义信息,并提供状态的查询功能;
所述多网冗余消息处理模块(6),用于从多个网络接收其他节点发送的消息,负责对消息去重,并根据消息类型路由到其他处理模块,还用于与实时库相配合实现仲裁服务的无损切换和应用进程的无损切换;
所述时间跳变消息处理模块(7),用于检查本节点是否发生时间跳变,并在主节点直接记录时间跳变信息,在备节点记录跳变信息的同时处理从主节点接收的消息时标的转换,确保主备切换时带时效消息的正确处理;
所述消息接收模块(8),用于从多个网段订阅其他节点发送的消息,记录日志并发送给多网冗余消息处理模块进行进一步的处理;
所述消息发送模块(9),用于将多网冗余消息处理模块发送的消息可靠的发送给订阅该消息的节点。
3.根据权利要求1所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,该系统支持分层部署,在双网或多网环境下,上下层任一网络连通时,所有节点作为一个系统运行,上下层网络全部中断时,本层子系统独立运行,上下层网络恢复时,本层网络与上层网络快速交换断面,恢复到中断前的一个系统运行。
4.根据权利要求2所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述仲裁服务进程收到节点配置变化后实时处理并生效,若可编程逻辑文件的变更且节点角色是主节点或备节点,则收到通知后进行主备选举逻辑的变更。
5.根据权利要求2所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述配置的选举逻辑根据节点运行状态和静态优先级进行在线可编程逻辑选举;
其中,仲裁服务主节点的选举和应用服务的主备选举根据节点的CPU利用率、内存利用率、若干网络的通讯状态及若干网络通讯速率的运行状态的不同权重和瞬时静态优先级相结合的复合容错策略来实现。
6.根据权利要求2所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述根据消息类型路由到其他处理模块包括:
判断消息的类型,若为认证类消息则发送给应用主备选举模块,若为普通消息则存储入实时库,若为带时限的消息则进行时间跳变消息处理后存储入实时库。
7.根据权利要求2所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述仲裁服务的无损切换包括:
仲裁服务的备节点通过消息接收模块同时接收其他应用和仲裁服务主节点发送的带识别码的同一消息;
当仲裁服务的备节点收到其他应用发布的消息时,则将该消息缓存入本节点的实时库并打上发送源标记和主节点未处理标记;
当仲裁服务的备节点随后收到主节点转发的该消息时,则在该消息上打上已由主节点处理的标记;
仲裁服务的备节点若只接收到应用发送的消息而未接收到主节点转发的该消息,且此时仲裁服务的主节点异常而备节点切换为主节点时,则继续处理带未处理标记的消息,处理后发布到其他应用,从而实现仲裁服务的无损切换。
8.根据权利要求2所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述应用进程的无损切换包括:
应用进程的主节点通过仲裁服务接口发送已处理的消息,该消息通过仲裁服务主节点的消息接收模块接收后,发送给所有该应用进程的备节点;
应用进程的备节点通过接收该消息明确主节点的消息处理进度,从而在发生主备切换时无损继续消息的处理。
9.根据权利要求1所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,经过主备节点切换后,备节点的所有带时效消息即具备本机的单调时钟,与绝对时间无关,从而实现仲裁主备节点切换时的带时效消息处理与绝对时间无关。
10.根据权利要求1所述的一种多网冗余的分层分布式可编程容错仲裁服务系统,其特征在于,所述时间跳变消息处理模块(7)在检查本节点是否发生时间跳变,并在主节点直接记录时间跳变信息,在备节点记录跳变信息的同时处理从主节点接收的消息时标的转换,确保主备切换时带时效消息的正确处理时包括:
仲裁服务主节点在接收到其他节点中应用的认证信息后利用单调时间对该消息设置本机失效时标;
仲裁服务备节点启动后从主节点同步各个应用的认证信息断面,同时接收到主节点的实时转发的其他节点上应用的认证信息后,利用单调时间对该消息设置本机失效时标,备节点同时记录主节点和本机的单调时间差;
当备节点启动时从主节点拉取消息断面,且该断面未包含备节点本身的单调时间,当备节点从主节点接收断面信息时,从该断面消息中提取主节点的单调时间,并与本身的单调时间比较计算出单调时间差,为每个断面消息写入本机的单调时间;
当仲裁服务主节点失效时,备用仲裁服务节点立刻接管,使得绝对时间的跳变不对本机的消息是否失效的判断产生影响,实现对节点时钟跳变免疫。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310880727.2A CN116743539A (zh) | 2023-07-18 | 2023-07-18 | 一种多网冗余的分层分布式可编程容错仲裁服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310880727.2A CN116743539A (zh) | 2023-07-18 | 2023-07-18 | 一种多网冗余的分层分布式可编程容错仲裁服务系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116743539A true CN116743539A (zh) | 2023-09-12 |
Family
ID=87916956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310880727.2A Pending CN116743539A (zh) | 2023-07-18 | 2023-07-18 | 一种多网冗余的分层分布式可编程容错仲裁服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743539A (zh) |
-
2023
- 2023-07-18 CN CN202310880727.2A patent/CN116743539A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102404390B (zh) | 高速实时数据库的智能化动态负载均衡方法 | |
CN103199972B (zh) | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 | |
CN106126346A (zh) | 一种大规模分布式数据采集系统及方法 | |
US20050028024A1 (en) | Process data collection system | |
TWI701916B (zh) | 用於在分布式系統中使管理能力自恢復的方法和裝置 | |
CN103019889A (zh) | 分布式文件系统及其故障处理方法 | |
CN101483540A (zh) | 一种高端数据通信设备中的主备倒换方法 | |
CN113127270B (zh) | 一种基于云计算的3取2安全计算机平台 | |
US20080307254A1 (en) | Information-processing equipment and system therefor | |
CN102117225B (zh) | 一种工业自动化多点集群系统及其任务管理方法 | |
CN101237413B (zh) | 在转发和控制分离网络件架构下实现控制件高可用性的方法 | |
CN107153660A (zh) | 分布式数据库系统的故障检测处理方法及其系统 | |
CN111858190B (zh) | 提高集群可用性的方法及其系统 | |
CN111800484A (zh) | 机动边缘信息服务系统的服务抗毁接替方法 | |
CN114338670B (zh) | 一种边缘云平台和具有其的网联交通三级云控平台 | |
CN102932118B (zh) | 一种双机主备裁决的方法及系统 | |
CN102487332B (zh) | 故障处理方法、装置和系统 | |
CN112172879B (zh) | 一种主备控制中心切换方法及轨道交通综合监控系统 | |
JP5285044B2 (ja) | クラスタシステム復旧方法及びサーバ及びプログラム | |
CN117201278A (zh) | 一种实现信创环境云原生应用主备容灾高可用场景的方法 | |
CN116743539A (zh) | 一种多网冗余的分层分布式可编程容错仲裁服务系统 | |
CN110677288A (zh) | 一种通用于多场景部署的边缘计算系统及方法 | |
CN114564340B (zh) | 航天地面系统分布式软件高可用方法 | |
KR20140029644A (ko) | 분산 컴퓨팅 시스템 및 상기 분산 컴퓨팅 시스템에서의 장애 복구 방법 | |
CN111966469B (zh) | 一种集群虚拟机高可用方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |