CN109347655B - 基于网络数据的故障恢复系统和方法及存储介质 - Google Patents
基于网络数据的故障恢复系统和方法及存储介质 Download PDFInfo
- Publication number
- CN109347655B CN109347655B CN201811056651.7A CN201811056651A CN109347655B CN 109347655 B CN109347655 B CN 109347655B CN 201811056651 A CN201811056651 A CN 201811056651A CN 109347655 B CN109347655 B CN 109347655B
- Authority
- CN
- China
- Prior art keywords
- partition
- data
- network data
- copy
- module
- 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.)
- Active
Links
Images
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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供基于网络数据处理的故障恢复方法和系统及存储介质,令网络数据全量镜像复制,将全量网络数据输出到至少一台数据处理主机;令全量网络数据分区,创建分区副本,制定数据分区副本策略,下发给输入过滤、输出拦截;接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理。令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据;令输出的主分区副本的网络数据去除重复数据。通过TAP分光器、分区副本控制器、输出拦截器、输出去重器,满足数据零丢失、零重复要求的网络数据处理故障恢复。
Description
技术领域
本发明涉及数据灾备领域,具体地,涉及一种适用于网络数据处理的故障恢复系统和方法。
背景技术
随着社会科技的发展,网络已成为企业,尤其是金融企业不可或缺的核心组成部分。从网络数据中,我们可以获得全量的信息,通过计算分析,从而获得具有商业价值的信息。像这样的网络数据处理系统能够被应用于运营监控、测试反演、实时行情、实时营销和金融反欺诈等场景。因此,网络数据处理系统对数据可用性和准确性要求很高。当系统发生故障时,要求在故障时间段内输入的数据不能丢失。在故障恢复后,输出的数据也不能有重复。
故障发生后对于数据的恢复基于数据备份。目前的数据备份分同步和异步两种。异步备份是与主数据相比,备份数据总是会缺少一点,导致在故障恢复后,无法恢复全部的数据,即无法实现数据零丢失。而同步备份则没有此问题。但是即使依靠数据同步备份,现有的高可用故障恢复机制往往要求在故障恢复阶段,停止数据源输入,从外界视角来看就是服务暂时不可用,等到故障恢复完成后才开放数据的输入。这对于网络数据而言是不可行的,因为在网络设备正常工作的情况下,网络数据输入无法被阻断,处理系统必须能够持续不断地接收,否则就会造成数据丢失。
通常数据备份基于软件,当一台主机接收到数据后,复制并通过网络发送给备份主机。这样的机制无法适应网络数据高流量的特点。此外,通常的分布式数据分区也是通过网络来完成。主机会将接收到的数据中不属于自己分区的数据通过网络转发到其他主机,这对于处理非网络数据来说是可行的方法,但在遇到高流量的网络数据时会出现性能问题。当出现堵塞时,即使知道故障发生的时间点,由于网络数据无阻塞特征,在故障发生后无法要求数据源从该故障发生时间点开始重新发送数据,从而导致输出数据不唯一。
专利文献CN102752404A公开了一种新型的灾难备份恢复方法与系统,通过改变客户端和生产系统之间的通讯数据在网络中的流向,或者生产系统内部服务器之间的通讯数据在网络中的流向,使之必然绕经网络中的一个或者若干个通讯数据获取点,在通讯数据获取点将上述通讯数据截获,并将截获的数据存储在备份数据中心;生产系统还同时和灾难备份系统之间通过传统灾备手段进行异步数据复制;当生产数据中心发生灾难导致生产系统无法正常运转时,灾难备份系统将因为异步数据复制而丢失的数据,通过在通讯数据获取点截获的数据补全。对应用架构基本无改动,可以实现平滑过渡,不增加现有系统的负担,上述专利文献利用捕获、复制网络流量的方式实现故障恢复零数据丢失要求,但是由于采用实时备份近期的网络数据,在发生故障后,在处理新数据的同时采用异步数据回补的方式将故障恢复点更新到零。它在故障恢复后需要切换数据源到新的可用系统,中途要求数据源阻断,无法做到自动无缝的切换以适应网络数据无阻塞的特点。
专利文献CN107800520A公开了基于高速环境下的高可用无损失数据采集存储系统,包括客户端采集模块、服务器端模块和后台数据库,后台数据库连接有数据库引擎系统,客户端采集模块通过主连接端口连接服务器端主模块的输入端,服务器端主模块的输出端通过数据库主引擎系统连接后台数据库,客户端采集模块通过从连接端口连接服务器端从模块的输入端,服务器端从模块的输出端通过数据库从引擎系统连接后台数据库。能够在高流量以及突发巨大流量的环境下,将数据高稳定、高可靠地发送到服务器端模块,同时保证服务器端主模块和服务器端从模块切换过程中的异常情况下,将采集数据无损的转发到后台数据库。但是由于采用软件对数据进行采集与复制,并使用Socket套接字完成数据的发送,复制与传输,性能较低,且未涉及主备服务器切换的具体实施方法和实现零数据丢失。
专利文献CN108282361A公开一种数据灾难预防系统及方法,包括数据采集模块、数据分析模块和数据备份还原模块;所述数据采集模块用于采集网络节点中传输的网络数据,并传输给数据分析模块;所述数据分析模块用于对数据采集模块中采集的网络数据进行分析,得出数据日志;所述备份还原模块用于对所述数据日志进行备份,并在发生数据灾难时根据所述数据日志恢复对应的网络数据。设置备份还原模块,在数据灾难发生之前存储数据日志,在数据灾难之后可以根据数据日志恢复网络数据,避免数据灾难导致数据网络瘫痪。上述专利文献只是针对业务数据对象进行备份恢复,并不适用于网络数据的故障恢复。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于网络数据的故障恢复系统和方法及存储介质。
根据本发明提供的一种基于网络数据处理的故障恢复系统,包括以下模块:TAP分光模块:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机;分区副本控制模块:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤模块、输出拦截模块;输入过滤模块:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理。输出拦截模块:令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。
优选地,所述基于网络数据处理的故障恢复系统还包括输出去重模块;输出去重模块:令输出的主分区副本的网络数据去除重复数据。
优选地,所述分区副本控制模块包括:主机选举模块:令数据处理主机使用共识协议进行选举,其中一台数据处理主机为Master控制主机,其他数据处理主机为Slave控制主机;分区副本策略制定模块:Master控制主机根据一致性哈希算法制定分区副本策略;分区副本策略下发模块:Master控制主机采用心跳广播机制,周期性的将分区副本策略下发至Slave控制主机,Slave控制主机将分区副本策略通知位于同一台数据处理主机上的输入过滤模块、输出拦截模块。
优选地,所述分区副本策略制定模块包括:哈希值计算模块:根据设定采集的流量IP、端口地址定义分区,令每个分区设置分区ID,根据设定的副本数量为每个分区创建分区副本,令分区副本设置副本序号,使用分区ID、副本序号计算分区副本哈希值;哈希环建立模块:使用数据处理主机IP地址计算主机哈希值,使用多个主机哈希值构建哈希环;分区副本位置设定模块:令分区副本哈希值放入哈希环中,并顺时针寻找地址最近的一个主机哈希值,记为最近主机哈希值,将最近主机哈希值的数据处理主机作为分区副本的所属主机。
优选地,所述输入过滤模块包括,IP端口匹配列表生成模块:依据接收的分区副本分配策略,生成IP端口匹配列表,所述IP端口匹配列表中包括所在数据处理主机上的全部分区副本的网络数据流量;数据过滤模块:令输入到所在数据处理主机中的全量网络数据,根据IP端口匹配列表进行IP、端口匹配,若匹配成功,则令匹配网络数据设置分区副本编号标签,将已设置分区副本编号标签的网络数据记为编号标签网络数据;若匹配失败,则丢弃不匹配网络数据。
优选地,所述输出拦截模块包括,分区副本角色匹配列表生成模块:依据接收的分区副本分配策略,生成分区副本角色匹配列表,所述分区副本角色匹配列表包括所在数据处理主机上的全部主分区副本、备分区副本;分区副本数据分离模块:从接收到的网络数据中提取编号标签网络数据,根据分区副本角色匹配列表进行角色匹配,若匹配得到编号标签网络数据是分区主副本,则令编号标签网络数据输出至数据消费端;若匹配得到编号标签网络数据是分区备副本,则令编号标签网络数据暂存在备用分区缓存;备用分区缓存清理模块:周期性的将所在数据处理主机上的主分区副本最后一条发送数据的时间广播给其他数据处理主机,接收到其他数据处理主机发送的最后一条发送数据的时间时,丢弃备用分区缓存中早于该时间的备用分区数据。
优选地,所述输出去重模块包括,记录消息标识模块:令接收的每一条数据消息计算设置唯一的消息标识,将消息标识广播至其他数据处理主机;消息去重模块:接收其他数据处理主机发送的消息标识,将消息标识存储在去重缓存,所述去重缓存采用哈希表实现;所述共识协议能够感知Master控制主机故障,若Master控制主机故障,则重新触发主机选举模块执行,并更新分区副本策略,将更新后的分区副本策略下发至输入过滤模块、输出拦截模块。
根据本发明提供的一种基于网络数据处理的故障恢复方法,包括以下步骤,TAP分光步骤:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机;分区副本控制步骤:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤步骤、输出拦截步骤;输入过滤步骤:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理。输出拦截步骤:从数据处理中接收网络数据,令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。
优选地,所述输出拦截步骤之后还包括输出去重步骤;输出去重步骤:令输出拦截步骤中待输出的主分区副本的网络数据去除重复数据。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述方法的步骤。
与现有技术相比,本发明具有如下的有益效果:
1、本发明实现满足数据零丢失、零重复要求的网络数据处理故障恢复;
2、通过两台或多台主机之间组成热备,对数据预先镜像复制,实现故障恢复阶段不阻断网络数据的接收;
3、通过TAP硬件完成数据镜像复制,并以光纤直连的方式将备份数据发送到多台主机,高效、低时延,减少了数据处理主机对数据备份的负担;
4、使用输出去重在故障恢复节点消除重复数据,在用户能够提供业务层消息唯一表示的情况下,通过从报文中提取该标识进行去重,去重方式灵活。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的模块组成示意图;
图2为本发明的分区副本控制模块结构示意图;
图3为本发明的输入过滤模块结构示意图;
图4为本发明的数据处理模块说明图;
图5为本发明的输出去重模块说明图;
图6为本发明的故障恢复的处理说明图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于网络数据处理的故障恢复方法,包括以下步骤:TAP分光步骤:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机。通过两台或多台主机之间组成热备,将数据预先镜像复制发送给多台主机,以光纤直连的方式将备份数据发送到多台主机,具有高效、低时延的特点。当某台主机因故障无法接收数据时,立即由分区副本控制器通知备用分区主机接替故障主机的数据处理。从成为新的主分区的主机的视角来看,数据的接收就像是没有中断过一样;分区副本控制步骤:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤步骤、输出拦截步骤;输入过滤步骤:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理。输出拦截步骤:从数据处理中接收网络数据,令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。通过TAP分光器、分区副本控制器、数据过滤器、输出拦截器、输出去重器,来满足数据零丢失、零重复要求的网络数据处理故障恢复。
具体地,所述输出拦截步骤之后还包括输出去重步骤;输出去重步骤:令输出拦截步骤中待输出的主分区副本的网络数据去除重复数据。
具体地,所述分区副本控制步骤包括,主机选举步骤:令数据处理主机使用共识协议进行选举,其中一台数据处理主机为Master控制主机,其他数据处理主机为Slave控制主机;分区副本策略制定步骤:Master控制主机根据一致性哈希算法制定分区副本策略;分区副本策略下发步骤:Master控制主机采用心跳广播机制,周期性的将分区副本策略下发至Slave控制主机,Slave控制主机将分区副本策略通知位于同一台数据处理主机上的输入过滤步骤、输出拦截步骤。
具体地,所述分区副本策略制定步骤包括:哈希值计算步骤:根据设定采集的流量IP、端口地址定义分区,令每个分区设置分区ID,根据设定的副本数量为每个分区创建分区副本,令分区副本设置副本序号,使用分区ID、副本序号计算分区副本哈希值;哈希环建立步骤:使用数据处理主机IP地址计算主机哈希值,使用多个主机哈希值构建哈希环;分区副本位置设定步骤:令分区副本哈希值放入哈希环中,并顺时针寻找地址最近的一个主机哈希值,记为最近主机哈希值,将最近主机哈希值的数据处理主机作为分区副本的所属主机。
具体地,所述输入过滤步骤包括,IP端口匹配列表生成步骤:依据接收的分区副本分配策略,生成IP端口匹配列表,所述IP端口匹配列表中包括所在数据处理主机上的全部分区副本的网络数据流量;数据过滤步骤:令输入到所在数据处理主机中的全量网络数据,根据IP端口匹配列表进行IP、端口匹配,若匹配成功,则令匹配网络数据设置分区副本编号标签,将已设置分区副本编号标签的网络数据记为编号标签网络数据;若匹配失败,则丢弃不匹配网络数据。
具体地,所述输出拦截步骤包括,分区副本角色匹配列表生成步骤:依据接收的分区副本分配策略,生成分区副本角色匹配列表,所述分区副本角色匹配列表包括所在数据处理主机上的全部主分区副本、备分区副本;分区副本数据分离步骤:从接收到的网络数据中提取编号标签网络数据,根据分区副本角色匹配列表进行角色匹配,若匹配得到编号标签网络数据是分区主副本,则令编号标签网络数据输出至数据消费端;若匹配得到编号标签网络数据是分区备副本,则令编号标签网络数据暂存在备用分区缓存;备用分区缓存清理步骤:周期性的将所在数据处理主机上的主分区副本最后一条发送数据的时间广播给其他数据处理主机,接收到其他数据处理主机发送的最后一条发送数据的时间时,丢弃备用分区缓存中早于该时间的备用分区数据。
具体地,所述输出去重步骤包括,记录消息标识步骤:令接收的每一条数据消息计算设置唯一的消息标识,将消息标识广播至其他数据处理主机;消息去重步骤:接收其他数据处理主机发送的消息标识,将消息标识存储在去重缓存,所述去重缓存采用哈希表实现。
具体地,所述共识协议能够感知Master控制主机故障,若Master控制主机故障,则重新触发主机选举步骤执行,并更新分区副本策略,将更新后的分区副本策略下发至输入过滤步骤、输出拦截步骤。
根据本发明提供的一种基于网络数据处理的故障恢复系统,包括以下模块:TAP分光模块:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机;分区副本控制模块:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤模块、输出拦截模块;输入过滤模块:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理。输出拦截模块:令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。
具体地,所述基于网络数据处理的故障恢复系统还包括输出去重模块;输出去重模块:令输出的主分区副本的网络数据去除重复数据。使用输出去重器在故障恢复节点消除重复数据,消息唯一标识通过网络数据包特征来计算获得。
具体地,所述分区副本控制模块包括,主机选举模块:令数据处理主机使用共识协议进行选举,其中一台数据处理主机为Master控制主机,其他数据处理主机为Slave控制主机;分区副本策略制定模块:Master控制主机根据一致性哈希算法制定分区副本策略;分区副本策略下发模块:Master控制主机采用心跳广播机制,周期性的将分区副本策略下发至Slave控制主机,Slave控制主机将分区副本策略通知位于同一台数据处理主机上的输入过滤模块、输出拦截模块。
具体地,所述分区副本策略制定模块包括,哈希值计算模块:根据设定采集的流量IP、端口地址定义分区,令每个分区设置分区ID,根据设定的副本数量为每个分区创建分区副本,令分区副本设置副本序号,使用分区ID、副本序号计算分区副本哈希值;哈希环建立模块:使用数据处理主机IP地址计算主机哈希值,使用多个主机哈希值构建哈希环;分区副本位置设定模块:令分区副本哈希值放入哈希环中,并顺时针寻找地址最近的一个主机哈希值,记为最近主机哈希值,将最近主机哈希值的数据处理主机作为分区副本的所属主机。
具体地,所述输入过滤模块包括,IP端口匹配列表生成模块:依据接收的分区副本分配策略,生成IP端口匹配列表,所述IP端口匹配列表中包括所在数据处理主机上的全部分区副本的网络数据流量;数据过滤模块:令输入到所在数据处理主机中的全量网络数据,根据IP端口匹配列表进行IP、端口匹配,若匹配成功,则令匹配网络数据设置分区副本编号标签,将已设置分区副本编号标签的网络数据记为编号标签网络数据;若匹配失败,则丢弃不匹配网络数据。
具体地,所述输出拦截模块包括,分区副本角色匹配列表生成模块:依据接收的分区副本分配策略,生成分区副本角色匹配列表,所述分区副本角色匹配列表包括所在数据处理主机上的全部主分区副本、备分区副本;分区副本数据分离模块:从接收到的网络数据中提取编号标签网络数据,根据分区副本角色匹配列表进行角色匹配,若匹配得到编号标签网络数据是分区主副本,则令编号标签网络数据输出至数据消费端;若匹配得到编号标签网络数据是分区备副本,则令编号标签网络数据暂存在备用分区缓存;备用分区缓存清理模块:周期性的将所在数据处理主机上的主分区副本最后一条发送数据的时间广播给其他数据处理主机,接收到其他数据处理主机发送的最后一条发送数据的时间时,丢弃备用分区缓存中早于该时间的备用分区数据。
具体地,所述输出去重模块包括,记录消息标识模块:令接收的每一条数据消息计算设置唯一的消息标识,将消息标识广播至其他数据处理主机;消息去重模块:接收其他数据处理主机发送的消息标识,将消息标识存储在去重缓存,所述去重缓存采用哈希表实现;所述共识协议能够感知Master控制主机故障,若Master控制主机故障,则重新触发主机选举模块执行,并更新分区副本策略,将更新后的分区副本策略下发至输入过滤模块、输出拦截模块。
本发明提供的基于网络数据处理的故障恢复系统,可以通过基于网络数据处理的故障恢复方法的步骤流程实现。本领域技术人员可以将基于网络数据处理的故障恢复方法理解为所述基于网络数据处理的故障恢复系统的优选例。
本发明能够实现在两台,或者多台主机之间设立故障恢复机制。如图1所示,通过TAP分光器、分区副本控制器、输入过滤器、输出拦截器,四个模块来实现故障恢复数据零丢失,可选的输出去重模块来保证故障恢复后数据输出零重复。TAP分光器用于将网络数据全量镜像复制,通过光纤直连输出到多台主机;分区副本控制器将数据分区和副本策略下发给各主机的数据过滤器和输出拦截器;输入过滤器从接收到的全量数据中过滤出本机所分配分区副本的数据,并发送给数据处理器进行处理;输出拦截器将主分区副本的数据输出,将备分区副本的数据拦截暂存。输出拦截器周期性将备分区副本与主分区副本进行时间同步,丢弃已发送备分区副本数据;输出去重模块用于在故障恢复阶段根据消息唯一标识去除发送的重复数据。
如图2所示的分区副本控制器,负责依据业务需求将全量网络数据分成多个分区,再按备份数创建对应分区副本,通过某种策略将分区副本分配给各主机,并下发通知给各主机。该控制器使用强一致性分布式协议,采用Master-Slave模式其用于:使用分布式协议在多个分区副本控制中选举出Master控制器;Master控制器根据业务分区要求,为每一个逻辑分区创建分区副本;Master控制器根据一致性哈希算法计算分区副本对主机的分配策略;周期性地将分配策略下发通知给各主机的输入过滤器、输出拦截器;使用分布式协议起到故障感知的作用。一旦某台主机发生故障,会标记该主机不可用,再下一次的分区副本分配计算时,不会将主分区副本角色分配给该主机。
如图3所示的输入过滤器,其用于不断接收并更新从分区副本控制器发送过来的分区副本分配策略;使用被分配的分区副本的IP、端口匹配规则匹配输入的网络数据;若匹配,则输送给数据处理器。若不匹配则丢弃。
如图4所示的输出拦截器,其用于不断接收并更新从分区副本控制器发送过来的分区副本分配策略;按照分区副本的主、备角色对输出数据进行拦截;若是主副本数据,则正常输出到输出去重器,若是备副本数据,则暂存到缓存;当输出主副本数据时,将主副本数据时间戳广播给其他主机的输出拦截器;当接收到同步的主副本数据时间戳时,丢弃早于该时间戳的备副本数据缓存;设立同步时延机制,广播的时间戳需减去同步时延,以抵消两台主机时间不同步的问题。
如图5所示的输出去重器,其用于在系统正常工作时,输出去重器处于静默工作状态,只是当输出主副本数据时,从网络数据包信息中提取输出消息的唯一标识。将唯一标识发送给备副本所在输出去重器,备副本输出去重器将该唯一标识进行缓存;在发生故障后,新的主副本输出去重器被触发到激活状态。此时,当输出主副本数据时,会提取输出消息的唯一标识,并在去重缓存中进行匹配。若匹配,则发生重复,丢弃该数据。若不匹配则正常输出。当匹配的消息数量超过去重缓存的容量后,输出去重器再次进入静默工作状态;当用户提供业务层唯一标识时,可使用业务层唯一标识进行去重。否则通过数据包特征计算消息唯一标识。
下面对本发明在具体的实施中做进一步的阐述,具体描述如下:
一、分区副本控制器
1)使用共识协议在多台主机之选举出Master控制器,其余均是Slave控制器。由Mater控制器计算分区副本策略。共识协议可以采用Zookeeper、Raft或者Gossip。此外,主机故障也是使用共识协议来感知。当发现主机故障后,则触发对Master控制器的新一轮选举;
2)可通过一致性哈希算法计算分区副本分配策略。方法是
a)根据用户想要采集的流量IP和端口地址,定义分区。根据预设的副本数量为每个分区创建分区副本。为分区定义一个ID号,使用分区ID号和副本序号计算分区副本哈希值;
b)使用主机IP地址计算主机哈希值,并使用多个主机哈希构建哈希环;
c)将分区副本哈希值放到哈希环中,寻找顺时针最近的一个主机。
3)Master分区副本控制器采用心跳广播机制,周期性根据业务分区、主机状态计算分配策略,并将分配结果发送给位于各台主机的Slave控制器。Slave控制器再将分配策略通知位于同一台主机上的输入过滤器、输出拦截器和输出去重器;
4)当主机发生故障后,会在下一次分区副本分配策略的计算结果中得到体现。基于广播机制,各主机均能获知分配给本机上的分区副本的主、备角色变化,从而使输入过滤器、输出拦截器和输出去重器做出响应的故障切换动作。
二、输入过滤器
1)输入过滤器依据接收到的分区副本分配策略,生成一份IP、端口匹配列表,其中包括了本机负责的所有主、备分区副本的网络数据流量;
2)输入过滤对输入的网络数据根据IP、端口匹配列表进行过滤。若匹配,将数据打上分区号标签并输送给数据处理器。若不匹配则丢弃;
3)当因故障导致本机的分配策略发生变化,则会依据下一次心跳接收到的分配策略重新生成IP、端口匹配列表并更新;
三、输出拦截器
1)输出拦截器依据接收到的分区副本分配策略,生成一份分区、副本角色匹配列表;其中包括了本机负责的所有主、备分区副本;
2)输出拦截器从输入的数据中提取输入过滤器打上的分区号标签,依据分区、副本角色匹配列表进行匹配。若匹配分区的副本角色是主,则输出给接收端或输出去重器,并更新该分区的最后一条发送数据的时间。若副本角色是备,则将数据暂存于备用分区缓存。分区缓存采用通常的FIFO队列实现;
3)输出拦截器会周期性将本机主分区副本最后一条发送数据的时间广播给位于其他主机的输出拦截器;
4)当输出拦截器接收到来自位于其他主机的输出拦截器所发送的分区最后一条数据发送时间时,会检查位于本机的所有备用分区副本,尝试对备用分区缓存的数据进行清理。清理规则是:丢弃早于主分区副本所发送的最后一条数据时间的备用分区数据。
5)由于主、备分区副本主机时间可能不同步,要求所有主机设置NTP时间同步机制,以避免备用分区副本缓存暂存量过大引起内存消耗过大问题。同时为了抵消因NTP时间同步误差所导致的备用分区副本数据时间快于主分区副本数据时间,输出拦截器在广播主分区副本最后一条数据发送时间时,会将时间减去一个同步时延。
6)当因故障导致本机的分配策略发生变化,输出拦截器依据如下故障切换机制对行为作出调整:
a)当分区副本角色由备变为主时,清空该备用分区副本数据缓存,从下一条数据开始直接输出数据,并开始广播该分区的最后一条发送数据时间;
b)当分区副本角色由主变为备时,从下一条数据开始进行拦截并加入备用分区缓存。同时开始使用来自其他主机主分区副本的最后一条发送数据时间来清理分区缓存。
四、输出去重器
1)输出去重器是可选模块,当要求障切换数据零丢失的基础上还要求数据不重复,可启用该模块。
2)输出去重器直接对接在输出拦截器输出端,并从输出拦截器直接获取输出数据所属的分区副本和角色;
3)依据输出拦截器的实现,通过输出去重器的数据均属于分区主副本,每通过一条数据消息,输出去重器计算该消息的唯一标识,并广播给位于其他主机的输出去重器;4)当输出去重器接收到来自位于其他主机的输出去重器所发送的主副本分区数据唯一标识时,会将唯一标识存入去重缓存。去重缓存可采用哈希表实现。
5)当因故障导致本机的分配策略发生变化,输出去重器依据如下故障切换机制对行为作出调整:
a)当分区副本角色由备变为主时,开始对后续通过的数据进行去重。提取每一条发送数据的唯一标识,用去重缓存进行匹配。若不匹配则正常发送,若匹配则丢弃。匹配的消息个数为变化角色时的去重缓存容量。若匹配的消息个数超过缓存容量时,清空去重缓存,开始进入正常工作模式,即对每一条后续发送的数据提取并广播其数据唯一标识;
b)当分区副本角色由主变为备时,从下一条数据开始停止提取和广播其数据唯一标识。同时开始接收来自其他主机主分区副本广播的数据唯一标识,并存入去重缓存;
6)默认数据唯一标识的提取是通过数据包特征,包括但不限于网络层的MD5值等。当用户能够提供业务层数据唯一标识时,可配置去重器提取网络数据包的特定位置数据作为数据唯一标识。虽然从网络协议栈中也能提取唯一标识,但计算量较大。用户提供的唯一标识一般计算简单,且更具有业务针对性。
本发明具体可以应用在风控操作、实时营销、反欺诈等领域。这些领域对数据都要求实时性、可靠性和准确性。通常的系统实现方式是基于在业务系统预埋数据采集探针,将采集到的数据推送给消息队列或数据库。控风控操作、实时营销、反欺诈模型分析系统通过读取消息队列或数据库进行分析处理。当消息队列或者数据库发生故障时,即使能够做到故障恢复,仍需要一种机制让数据采集探针转向另一个端点继续推送数据。在这种机制发生作用时,也存在一段时间消息无法推送。数据采集探针可以通过缓存这一时间段数据来规避这一问题。基于网络数据的风控操作、实时营销、反欺诈系统由于除去了消息队列或数据库这一环节,所以在数据实时性上具有优势。但传统的故障恢复机制无法适用于无法阻塞的网络数据源。本发明能适用于于基于网络数据源的风控操作、实时营销、反欺诈系统。在故障恢复期间不阻断数据接收和输出,为风控模型、实时营销模型、反欺诈模型提供持续不断、零丢失的低延迟数据。同时本发明中数据不重复的性质也保证了对这些模型输入数据的准确性,进而获得准确可靠的模型判断结果。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种基于网络数据处理的故障恢复系统,其特征在于,包括以下模块:
TAP分光模块:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机;
分区副本控制模块:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤模块、输出拦截模块;
输入过滤模块:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理;
输出拦截模块:从数据处理中接收网络数据,令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。
2.根据权利要求1所述的基于网络数据处理的故障恢复系统,其特征在于,还包括输出去重模块;
输出去重模块:令输出的主分区副本的网络数据去除重复数据。
3.根据权利要求2所述的基于网络数据处理的故障恢复系统,其特征在于,所述分区副本控制模块包括:
主机选举模块:令数据处理主机使用共识协议进行选举,其中一台数据处理主机为Master控制主机,其他数据处理主机为Slave控制主机;
分区副本策略制定模块:Master控制主机根据一致性哈希算法制定分区副本策略;
分区副本策略下发模块:Master控制主机采用心跳广播机制,周期性的将分区副本策略下发至Slave控制主机,Slave控制主机将分区副本策略通知位于同一台数据处理主机上的输入过滤模块、输出拦截模块。
4.根据权利要求3所述的基于网络数据处理的故障恢复系统,其特征在于,所述分区副本策略制定模块包括:
哈希值计算模块:根据设定采集的流量IP、端口地址定义分区,令每个分区设置分区ID,根据设定的副本数量为每个分区创建分区副本,令分区副本设置副本序号,使用分区ID、副本序号计算分区副本哈希值;
哈希环建立模块:使用数据处理主机IP地址计算主机哈希值,使用多个主机哈希值构建哈希环;
分区副本位置设定模块:令分区副本哈希值放入哈希环中,并顺时针寻找地址最近的一个主机哈希值,记为最近主机哈希值,将最近主机哈希值的数据处理主机作为分区副本的所属主机。
5.根据权利要求1所述的基于网络数据处理的故障恢复系统,其特征在于,所述输入过滤模块包括:
IP端口匹配列表生成模块:依据接收的分区副本策略,生成IP端口匹配列表,所述IP端口匹配列表中包括所在数据处理主机上的全部分区副本的网络数据流量;
数据过滤模块:令输入到所在数据处理主机中的全量网络数据,根据IP端口匹配列表进行IP、端口匹配,若匹配成功,则令匹配网络数据设置分区副本编号标签,将已设置分区副本编号标签的网络数据记为编号标签网络数据;若匹配失败,则丢弃不匹配网络数据。
6.根据权利要求3所述的基于网络数据处理的故障恢复系统,其特征在于,所述输出拦截模块包括:
分区副本角色匹配列表生成模块:依据接收的分区副本策略,生成分区副本角色匹配列表,所述分区副本角色匹配列表包括所在数据处理主机上的全部主分区副本、备分区副本;
分区副本数据分离模块:从接收到的网络数据中提取编号标签网络数据,根据分区副本角色匹配列表进行角色匹配,若匹配得到编号标签网络数据是分区主副本,则令编号标签网络数据输出至数据消费端;若匹配得到编号标签网络数据是分区备副本,则令编号标签网络数据暂存在备用分区缓存;
备用分区缓存清理模块:周期性的将所在数据处理主机上的主分区副本最后一条发送数据的时间广播给其他数据处理主机,接收到其他数据处理主机发送的最后一条发送数据的时间时,丢弃备用分区缓存中早于该时间的备用分区数据。
7.根据权利要求3所述的基于网络数据处理的故障恢复系统,其特征在于,所述输出去重模块包括:
记录消息标识模块:令接收的每一条数据消息计算设置唯一的消息标识,将消息标识广播至其他数据处理主机;
消息去重模块:接收其他数据处理主机发送的消息标识,将消息标识存储在去重缓存,所述去重缓存采用哈希表实现;
所述共识协议能够感知Master控制主机故障,若Master控制主机故障,则重新触发主机选举模块执行,并更新分区副本策略,将更新后的分区副本策略下发至输入过滤模块、输出拦截模块。
8.一种基于网络数据处理的故障恢复方法,其特征在于,包括以下步骤:
TAP分光步骤:令网络数据全量镜像复制,形成全量网络数据,将全量网络数据输出到至少2台数据处理主机;
分区副本控制步骤:令全量网络数据分区,创建分区副本,分区副本分为主分区副本、备分区副本,制定数据分区副本策略,下发数据分区副本策略给输入过滤步骤、输出拦截步骤;
输入过滤步骤:接收全量网络数据,依据数据分区副本策略令全量网络数据过滤,得到所属分区的分区副本的网络数据,令所属分区的分区副本的网络数据发送至数据处理;
输出拦截步骤:从数据处理中接收网络数据,令主分区副本的网络数据输出,令备分区副本的网络数据拦截暂存,丢弃已输出的主分区副本对应的备分区副本的网络数据。
9.根据权利要求8所述的基于网络数据处理的故障恢复方法,其特征在于,所述输出拦截步骤之后还包括输出去重步骤;
输出去重步骤:令输出拦截步骤中待输出的主分区副本的网络数据去除重复数据。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求8至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056651.7A CN109347655B (zh) | 2018-09-11 | 2018-09-11 | 基于网络数据的故障恢复系统和方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811056651.7A CN109347655B (zh) | 2018-09-11 | 2018-09-11 | 基于网络数据的故障恢复系统和方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347655A CN109347655A (zh) | 2019-02-15 |
CN109347655B true CN109347655B (zh) | 2022-03-01 |
Family
ID=65304822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811056651.7A Active CN109347655B (zh) | 2018-09-11 | 2018-09-11 | 基于网络数据的故障恢复系统和方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347655B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096237B (zh) * | 2019-04-30 | 2022-02-08 | 北京百度网讯科技有限公司 | 副本处理方法及节点、存储系统、服务器、可读介质 |
CN113347038B (zh) * | 2021-06-08 | 2022-11-22 | 上海天旦网络科技发展有限公司 | 一种旁路流量处理的循环互备高可用系统 |
CN113848950A (zh) * | 2021-10-21 | 2021-12-28 | 广州文远知行科技有限公司 | 一种控制器控制方法、装置、交通工具及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866307A (zh) * | 2010-06-24 | 2010-10-20 | 杭州华三通信技术有限公司 | 一种基于镜像技术的数据存储方法及装置 |
CN102346695A (zh) * | 2010-07-29 | 2012-02-08 | 财团法人工业技术研究院 | 渐进式备份的基于片段的高延展的去复本系统与方法 |
CN102970220A (zh) * | 2012-11-29 | 2013-03-13 | 上海天旦网络科技发展有限公司 | 快速去除镜像环境中重复数据包的方法和系统 |
CN104331346A (zh) * | 2014-11-21 | 2015-02-04 | 四川神琥科技有限公司 | 一种数据保护方法 |
CN105354111A (zh) * | 2015-10-29 | 2016-02-24 | 国电南瑞科技股份有限公司 | 一种适用于广域分布式实时数据库的冗余备份方法 |
CN106992886A (zh) * | 2017-04-05 | 2017-07-28 | 国家电网公司 | 一种基于分布式存储的日志分析方法及装置 |
CN107465735A (zh) * | 2017-07-31 | 2017-12-12 | 杭州多麦电子商务股份有限公司 | 分布式消息系统 |
CN107809326A (zh) * | 2016-09-09 | 2018-03-16 | 阿里巴巴集团控股有限公司 | 数据一致性的处理方法、装置和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11256529B2 (en) * | 2010-03-17 | 2022-02-22 | Zerto Ltd. | Methods and apparatus for providing hypervisor level data services for server virtualization |
-
2018
- 2018-09-11 CN CN201811056651.7A patent/CN109347655B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866307A (zh) * | 2010-06-24 | 2010-10-20 | 杭州华三通信技术有限公司 | 一种基于镜像技术的数据存储方法及装置 |
CN102346695A (zh) * | 2010-07-29 | 2012-02-08 | 财团法人工业技术研究院 | 渐进式备份的基于片段的高延展的去复本系统与方法 |
CN102970220A (zh) * | 2012-11-29 | 2013-03-13 | 上海天旦网络科技发展有限公司 | 快速去除镜像环境中重复数据包的方法和系统 |
CN104331346A (zh) * | 2014-11-21 | 2015-02-04 | 四川神琥科技有限公司 | 一种数据保护方法 |
CN105354111A (zh) * | 2015-10-29 | 2016-02-24 | 国电南瑞科技股份有限公司 | 一种适用于广域分布式实时数据库的冗余备份方法 |
CN107809326A (zh) * | 2016-09-09 | 2018-03-16 | 阿里巴巴集团控股有限公司 | 数据一致性的处理方法、装置和设备 |
CN106992886A (zh) * | 2017-04-05 | 2017-07-28 | 国家电网公司 | 一种基于分布式存储的日志分析方法及装置 |
CN107465735A (zh) * | 2017-07-31 | 2017-12-12 | 杭州多麦电子商务股份有限公司 | 分布式消息系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109347655A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101904786B1 (ko) | 소스 데이터베이스 관리시스템에서 변경되는 데이터를 실시간으로 목표 데이터베이스 관리시스템에 복제하는 장치 및 그 방법 | |
CN106331098B (zh) | 一种服务器集群系统 | |
CN106254094B (zh) | 一种数据同步方法及系统 | |
WO2016070375A1 (zh) | 一种分布式存储复制系统和方法 | |
CN109347655B (zh) | 基于网络数据的故障恢复系统和方法及存储介质 | |
CN112311580B (zh) | 报文传输路径确定方法、装置及系统、计算机存储介质 | |
US9131015B2 (en) | High availability event log collection in a networked system | |
CN109976941B (zh) | 一种数据恢复方法和装置 | |
CN105790825B (zh) | 一种分布式保护中控制器热备份的方法和装置 | |
CN110581782A (zh) | 一种容灾数据的处理方法、装置及系统 | |
CN108572976A (zh) | 一种分布式数据库中数据恢复方法、相关设备和系统 | |
CN104679614A (zh) | 一种数据库灾备系统 | |
CN109669812A (zh) | 基于数据分流备份的云数据中心容灾系统及方法 | |
CN110971872B (zh) | 一种基于分布式集群的视频图像信息采集方法 | |
CN108173971A (zh) | 一种基于主备切换的MooseFS高可用方法及系统 | |
CN105634832A (zh) | 一种服务器的备份方法和装置 | |
CN112052127B (zh) | 一种用于双机热备环境的数据同步方法及装置 | |
CN113055203B (zh) | Sdn控制平面的异常恢复方法及装置 | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN105790985B (zh) | 数据倒换的方法、第一设备、第二设备及系统 | |
CN103793296A (zh) | 一种在集群中用于辅助备份复制计算机系统的方法 | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
US11327679B2 (en) | Method and system for bitmap-based synchronous replication | |
CN113794765A (zh) | 基于文件传输的网闸负载均衡方法及装置 | |
CN117909136A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |