CN110569144B - 基于storm流式计算的数据处理方法和数据处理系统 - Google Patents
基于storm流式计算的数据处理方法和数据处理系统 Download PDFInfo
- Publication number
- CN110569144B CN110569144B CN201910735948.4A CN201910735948A CN110569144B CN 110569144 B CN110569144 B CN 110569144B CN 201910735948 A CN201910735948 A CN 201910735948A CN 110569144 B CN110569144 B CN 110569144B
- Authority
- CN
- China
- Prior art keywords
- storm
- node
- state data
- target working
- data
- 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
-
- 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
-
- 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/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于STORM流式计算的数据处理方法和数据处理系统。所述方法包括:STORM输入节点向STORM目标工作节点发送状态数据备份指令;STORM目标工作节点接收到状态数据备份指令时,对STORM目标工作节点的节点状态数据进行备份存储;当STORM流式计算中断时,STORM输入节点恢复STORM输入节点中最后一次备份的消息偏移量状态数据,并向STORM目标工作节点发送恢复状态数据指令;STORM目标工作节点接收到恢复状态数据指令时,从备份存储中恢复STORM目标工作节点的节点状态数据;其中,消息偏移量状态数据以及节点状态数据均用于STORM流式计算。上述方法能够在数据处理系统执行流式计算时进行数据流恢复,解决数据处理系统中STORM流式计算过程的数据丢失问题。
Description
技术领域
本申请涉及流式计算技术领域,特别是涉及一种基于STORM流式计算的数据处理方法和数据处理系统。
背景技术
伴随着信息技术的发展,零售与互联网的融合,大数据已经成为互联网时代企业发展的标配。对于电商领域,大数据的价值在于为精细化运营和营销提供数据支撑。对于大数据部门,其面向的领域主要为商业智能以及数据仓库,而流式计算正是大数据部门对于数据处理中不可或缺的技术手段之一。目前主要使用Storm计算系统来实现流式计算,Storm计算系统包括多台物理机、多台虚拟机以及多个topology任务。Storm计算系统本身具有横向扩展、容错和低延时、至少一次的消息可靠性等优点,基本可以满足以实时ETL、实时报表、实施大屏、实施推荐等为主的常见需求。但是Storm计算系统为纯流式计算,流一旦中断,比如其中一台设备宕机,将造成数据丢失,因此其应用场景受到一定的限制。
发明内容
基于此,有必要针对上述技术问题,提供一种能够进行数据流恢复的基于STORM流式计算的数据处理方法和数据处理系统,以解决数据处理系统中STORM流式计算过程的数据丢失问题。
一种基于STORM流式计算的数据处理方法,所述方法包括:
STORM输入节点向STORM目标工作节点发送状态数据备份指令;
所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储;
当STORM流式计算中断时,所述STORM输入节点恢复所述STORM输入节点中最后一次备份的消息偏移量状态数据,并向所述STORM目标工作节点发送恢复状态数据指令;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据;
其中,所述消息偏移量状态数据以及所述节点状态数据均用于STORM流式计算。
在其中一个实施例中,所述节点状态数据包括所述STORM目标工作节点的局部状态数据;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点根据所述恢复状态数据指令,从备份存储中恢复所述STORM目标工作节点的局部状态数据。
在其中一个实施例中,所述节点状态数据还包括STORM目标工作节点的全局状态数据;所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,包括:所述STORM目标工作节点采用分布式的方式将所述STORM目标工作节点的全局状态数据存储到分布式缓存中,同时将所述STORM目标工作节点的局部状态数据存储到Java虚拟机堆内存中。
在其中一个实施例中,所述局部状态数据包括所述STORM目标工作节点的检查点的状态数据;所述STORM输入节点向所述STORM目标工作节点发送恢复状态数据指令,包括:
所述STORM输入节点根据所述STORM目标工作节点的输入流和输出流的依赖关系,确定出所述STORM目标工作节点在执行STORM流式计算过程发生节点状态数据丢失的目标检查点,向所述STORM目标工作节点发送根据所述目标检查点进行数据恢复的恢复状态数据指令;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据。
在其中一个实施例中,所述STORM目标工作节点的检查点的状态数据包括检查点反馈的数据的偏移量、标志位以及所述STORM目标工作节点的本地状态数据;所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的所述偏移量、标志位以及本地状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据。
在其中一个实施例中,所述STORM目标工作节点中包括Bolt处理器组件和Spout发送器组件;所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,包括:
所述Bolt处理器组件根据所述状态数据备份指令以及所述Bolt处理器组件的当前状态数据判断是否对所述节点状态数据进行备份存储;若是,将所述节点状态数据的备份存储的第一操作结果发送给所述Spout发送器组件;所述Spout发送器组件接收到所述第一操作结果时,根据所述第一操作结果的消息类型判断是否将所述第一操作结果进行发送;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述Bolt处理器组件根据所述恢复状态数据指令以及所述Bolt处理器组件的当前状态数据判断是否从备份存储中恢复所述节点状态数据;若是,将恢复所述节点状态数据的第二操作结果发送给所述Spout发送器组件;所述Spout发送器组件接收到所述第二操作结果时,根据所述第二操作结果的消息类型判断是否将所述第二操作结果进行发送。
一种基于STORM流式计算的数据处理系统,所述系统包括STORM输入节点和多个STORM工作节点;
所述STORM输入节点用于向多个所述STORM工作节点中的STORM目标工作节点发送状态数据备份指令,以及当STORM流式计算中断时,恢复所述STORM输入节点中最后一次备份的消息偏移量状态数据,并向所述STORM目标工作节点发送恢复状态数据指令;
所述STORM目标工作节点用于接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,以及接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据。
在其中一个实施例中,所述节点状态数据包括STORM目标工作节点的全局状态数据和局部状态数据;所述系统还包括高速缓冲存储器集群以及顺序存储器集群;所述高速缓冲存储器集群用于存储所述全局状态数据,所述顺序存储器集群用于存储所述局部状态数据。
在其中一个实施例中,所述STORM目标工作节点中设置有受管理状态接口;所述受管理状态接口与所述高速缓冲存储器集群连接,用于传输所述全局状态数据;和/或,所述受管理状态接口与所述顺序存储器集群连接,用于传输所述局部状态数据。
在其中一个实施例中,所述STORM目标工作节点设置有可靠性保障组件层;所述可靠性保障组件层包含一个或多个第一Bolt处理器组件以及一个或多个第一Spout发送器组件;所述第一Bolt处理器组件与第一Spout发送器组件均为有状态组件;
所述第一Bolt处理器组件用于在接收到消息时,根据消息的类型与所述第一Bolt处理器组件的当前组件状态判断是否将组件状态进行转换;若是,将所述当前组件状态转换为所述消息的类型对应的下一组件状态,并执行所述下一组件状态下的响应操作,将响应操作的响应结果发送给所述第一Spout发送器组件;
所述第一Spout发送器组件在接收到所述响应结果时,判断所述响应结果对应的消息类型,根据判断结果确定是否执行该响应结果对应的响应操作。
在其中一个实施例中,所述可靠性保障组件层还包括单元素处理单元和批量处理单元;所述单元素处理单元包括第二Bolt处理器组件,所述第二Bolt处理器组件用于处理流经所述可靠性保障组件层的单条消息;所述批量处理单元包括第三Bolt处理器组件,所述第三Bolt处理器组件用于批量处理流经所述可靠性保障组件层的多条消息。
在其中一个实施例中,所述STORM目标工作节点还设置有上下文组件层和应用组件层;所述上下文组件层包含一个或多个第四Bolt处理器组件以及一个或多个第二Spout发送器组件;所述上下文组件层用于向所述可靠性保障组件层的提供上下文信息;所述应用组件层包含一个或多个第五Bolt处理器组件以及一个或多个第三Spout发送器组件,所述应用组件层用于封装预设算子,并在初始化时向所述可靠性保障组件层传送所述预设算子。
上述基于STORM流式计算的数据处理方法和数据处理系统,数据处理系统的STORM输入节点向STORM目标工作节点发送的控制消息中包括状态数据备份指令的消息。STORM目标工作节点接收到STORM输入节点发送的消息时,对消息进行识别,确定为状态数据备份指令的消息时,根据状态数据备份指令对STORM目标工作节点的节点状态数据进行备份存储。数据处理系统在执行STORM流式计算时,若出现STORM流式计算中断,导致STORM输入节点以及STORM目标工作节点的数据丢失时,STORM输入节点恢复该STORM输入节点中最后一次备份的消息偏移量状态数据,并向STORM目标工作节点发送恢复状态数据指令,以使得STORM目标工作节点根据该恢复状态数据指令,从备份存储中恢复STORM目标工作节点的节点状态数据。因此,当STORM流式计算中断时,可以通过恢复STORM输入节点的最后一次备份的消息偏移量状态数据,以及恢复STORM目标工作节点的节点状态数据,继续执行STORM流式计算,避免STORM流式计算过程的数据丢失问题。
附图说明
图1为一个实施例中一种基于STORM流式计算的数据处理系统的结构示意图;
图2为一个实施例中受管理状态接口的数据传输流程的流程示意图;
图3为一个实施例中STORM目标工作节点的三层结构示意图;
图4为一个实施例中一种基于STORM流式计算的数据处理方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种基于STORM流式计算的数据处理方法,应用于基于STORM流式计算的数据处理系统中。其中,STORM流式计算的数据处理系统可以是Storm计算系统。在一实施例中,如图1所示,STORM流式计算的数据处理系统10包括STORM输入节点100以及多个STORM工作节点。STORM输入节点100可以是一个或多个。多个STORM工作节点包括STORM工作节点210、STORM工作节点230以及STORM工作节点250等。STORM输入节点100用于从外部系统20的消息队列中读取工作任务,根据工作任务向各STORM工作节点分配工作代码、布置任务以及对各个STORM工作节点进行工作检测等。STORM工作节点用于监听工作,并执行STORM输入节点100分配的工作。在具体应用中,STORM输入节点100通过消息流的形式向各个工作节点分配任务,同时也通过消息流的形式控制各个工作节点。在本实施例中,STORM输入节点100用于向多个STORM工作节点中的STORM目标工作节点发送状态数据备份指令。STORM目标工作节点可以是多个工作节点中的任意一个或者多个。如STORM工作节点210和/或STORM工作节点230。STORM目标工作节点在接收到STORM输入节点100发送的状态数据备份指令时,对STORM目标工作节点的节点状态数据进行备份存储。节点状态数据包括目STORM标工作节点中的全局状态数据和局部状态数据。例如,STORM目标工作节点中的各个变量,检查点中的偏移量Offset、标志位以及本地状态等数据。STORM目标工作节点将STORM目标工作节点的节点状态数据进行备份存储,以避免该STORM目标工作节点出现故障导致STORM流式计算中断时的数据丢失。进一步地,STORM输入节点100在系统执行流式计算时,实时监控各个STORM工作节点的工作状态。当STORM流式计算中断时,向STORM目标工作节点发送恢复状态数据指令。同时,STORM输入节点100还在STORM流式计算中断时,恢复STORM输入节点100中最后一次备份的消息偏移量状态数据,以便后续系统根据消息偏移量状态数据进行STORM流式计算。STORM目标工作节点在接收到STORM输入节点100发送的恢复状态数据指令时,将之前备份存储的节点状态数据进行恢复,从而在执行STORM流式计算过程发生节点状态数据丢失时,从备份存储的节点状态数据中恢复对应的数据以进行后续的STORM流式计算,避免数据丢失导致的计算中断或终止。此外,在一实施例中,基于STORM流式计算的数据处理系统10还包括Zookeeper应用程序协调服务300。Zookeeper应用程序协调服务300不是实际的节点,而是用于协调STORM输入节点100和各个工作节点的软件。
在本实施例中,STORM目标工作节点的节点状态数据包括STORM目标工作节点的全局状态数据和局部状态数据。此时,基于STORM流式计算的数据处理系统10还包括高速缓冲存储器集群400以及顺序存储器集群500。其中,高速缓冲存储器集群400用于存储STORM目标工作节点的全局状态数据,顺序存储器集群500用于存储STORM目标工作节点的局部状态数据。在一实施方式中,高速缓冲存储器集群400包括Redis数据库集群。顺序存储器集群500包括HBase数据库集群。
具体地,外部系统20中相关的部分主要为分布式MQ(消息队列)。流式计算集群,也即是基于STORM流式计算的数据处理系统10,通过消息队列进行解耦,其数据源于消息队列中的Topic(消息主题),处理后的数据最终也流向消息队列。
在具体的实施例中,基于STORM流式计算的数据处理系统10为Storm计算系统。Storm计算系统中除了原有的Nimbus、Supervisor、Worker、StormUI、Zookeeper等组件所构成的集群以外,还增加了Cache(高速缓冲存储器)集群与CheckpointRepo(检查点仓库)集群。其中Cache集群用以存储全局状态数据,CheckpointRepo集群则用以存储Checkpoint(检查点)数据以进行状态数据备份。每个Checkpoint包含偏移量Offset、标志位、本地状态等信息。为了保障性能与持久化能力,默认Cache集群中采用Redis数据结构服务器,以达到高性能并且读写效率一致的效果,并且打开Redis数据结构服务器持久化功能,减少状态数据丢失的概率。CheckpointRepo集群则默认采用HBase数据库,以达到高性能写与恢复过程中顺序读的效果。
其中,CheckpointRepo用于存储Checkpoint的状态数据,主要包含:源的状态、本地状态、标志位等数据信息。CheckpointRepo可以采用多种实现方式,例如:HDFS、DB、NoSQl等,但需满足写性能与可靠持久化要求。综上所述,HBase将是默认的选择。具体地,系统的框架内包含一个或多个HBase版的CheckpointRepo客户端、HBase集群、以及用于存储Checkpoint的HBase表。其中表的设计如下所示:
HBase Table:storm_checkpoint:tbl_${stormid}_offsets
HBase Table:storm_checkpoint:tbl_${stormid}_${taskid}_states
在一实施例中,STORM目标工作节点中设置有受管理状态接口。受管理状态接口与高速缓冲存储器集群连接,用于传输全局状态数据;和/或,受管理状态接口与顺序存储器集群连接,用于传输局部状态数据。
具体地,受管理状态接口称为ManagedState(受管理状态)接口,主要包含getName方法和getScope方法。getName指该状态的名称,getScope则为全局或局部。该受管理状态接口的数据传输流程可参见图2所示。使用该受管理状态接口的状态数据称之为受管理状态数据,其他则为不受管理状态数据。受管理状态可以以两个维度进行衡量:功能维度和作用域维度。作用域维度包含:全局、局部。全局状态由于需要在分布式的组件中可见,需要采用分布式缓存对应的全局状态数据,而局部状态则存储于JVM(java虚拟机)堆中。功能则包含常见的:Value、List、Set、Map、Stack、Queue、Increasement、Reduce、Locker等。
在一实施例中,STORM目标工作节点设置有可靠性保障组件层。可靠性保障组件层包含一个或多个第一Bolt处理器组件以及一个或多个第一Spout发送器组件。第一Bolt处理器组件与第一Spout发送器组件均为有状态组件。其中,第一Bolt处理器组件用于在接收到消息时,根据消息的类型与第一Bolt处理器组件的当前组件状态判断是否将组件状态进行转换;若是,将当前组件状态转换为消息的类型对应的下一组件状态,并执行下一组件状态下的响应操作,将响应操作的响应结果发送给第一Spout发送器组件。此时,第一Spout发送器组件在接收到响应结果时,判断响应结果对应的消息类型,根据判断结果确定是否执行该响应结果对应的响应操作。
进一步地,可靠性保障组件层还包括单元素处理单元和批量处理单元;单元素处理单元包括第二Bolt处理器组件,第二Bolt处理器组件用于处理流经可靠性保障组件层的单条消息;批量处理单元包括第三Bolt处理器组件,第三Bolt处理器组件用于批量处理流经可靠性保障组件层的多条消息。
此外,STORM目标工作节点还设置有上下文组件层和应用组件层。上下文组件层包含一个或多个第四Bolt处理器组件以及一个或多个第二Spout发送器组件;上下文组件层用于向可靠性保障组件层的提供上下文信息;应用组件层包含一个或多个第五Bolt处理器组件以及一个或多个第三Spout发送器组件,应用组件层用于封装预设算子,并在初始化时向可靠性保障组件层传送预设算子。
具体地,STORM目标工作节点由Storm组件构成。Storm组件包括Bolt处理器组件和Spout发送器组件。也即是,STORM目标工作节点由多个Bolt处理器组件和多个Spout发送器组件组成。其中,多个Bolt处理器组件包括多个继承类的Bolt处理器组件。多个Spout发送器组件包括多个继承类的Spout发送器组件。如图3所示,在该实施例中,根据开发需求将STORM目标工作节点的组件分为三层:第一层为上下文组件层201、第二层为可靠性保障组件层203、第三层则为应用组件层205。
上下文组件层201包括AbstractContextSpout组件与AbstractContextBolt组件,分别继承于Storm原生BaseRichSpout组件与BaseRichBolt组件,其中AbstractContextSpout组件与AbstractContextBolt组件各包含一个Context(上下文内容)的实现,并且可以被继承类所访问。该Context的实现可以提供:Bean的上下文(只读)、动态配置上下文(只读)、状态上下文(读写)、拓扑上下文(Storm自带)等,用以为下层组件提供相应的功能。
可靠性保障组件层203包括AbstractReliabilityGuaranteeSource组件、AbstractReliabilityGuaranteeNode组件与AbstractReliabilityGuaranteeSink组件,分别继承于AbstractContextSpout组件、AbstractContextBolt组件与AbstractContextBolt组件。这其中,可靠性保障组件层203又包括单元素处理单元2031和批量处理单元2035。也即是,在具体实施过程中,AbstractReliabilityGuaranteeNode组件又可分为AbstractReliabilityGuaranteeSingleProcessNode组件与AbstractReliabilityGuaranteeBatchProcessNode组件。AbstractReliabilityGuaranteeSingleProcessNode组件用于处理单个元素的消息,AbstractReliabilityGuaranteeBatchProcessNode组件用于批量处理多条消息。
可靠性保障组件层203为STORM目标工作节点中用于处理流经该STORM目标工作节点的消息。在本实施例中,为了达到精确一次的消息可靠性,必须对消息进行设计。每条流中的消息必须要考虑:是否过期、是否重复、支持keyBy功能以及消息的批处理以减少通行量问题。在Storm计算系统中,流中的消息称之为Tuple,所以Tuple必须由以下几位构成:
消息头:
版本 | 类型 | 时间戳 | 唯一标识符 |
消息体:
键值(默认空) | 数据块 |
同时,考虑到对流中各个工作节点的控制,STORM输入节点发送的消息包括以下几种类型:
DataMessage:真正的数据消息,接到消息的工作节点获取其中的数据进行处理。
KeyedDataMessage:包含键值的数据消息,工作节点用以实现按键分发功能。
BackupControlMessage:备份控制消息,用以通知工作节点进行状态数据的备份。
RecoveryControlMessage:恢复控制消息,用以通知工作节点进行状态数据的恢复。
InitControlMessage:初始化控制消息,用以通知换工作节点进行初始化。
ShutdownControlMessage:关闭控制消息,用以通知工作节点该拓扑即将关闭。
进一步地,该可靠性保障组件层203的组件具有状态。也即是该层组件为有状态组件。流经该可靠性保障组件层203的每条消息中带有唯一标识符,用以标识该条消息。该可靠性保障组件层203的组件不仅缓存每条消息的唯一标识符,并且还可以获取组件本身的各个组件状态。其中,组件状态可以分为:
Init初始化状态:用于初始化组件。
Recovery恢复状态:用于从CheckpointRepo中恢复状态数据。
Running运行状态:用于处理数据。
Backup备份状态:用于备份状态数据至CheckpointRepo中。
Shutdown关闭状态:用于关闭组件。
其中,上述可靠性保障组件层203中的AbstractReliabilityGuaranteeNode组件与AbstractReliabilityGuaranteeSink组件通过接收STORM输入节点发送的消息(或者来自其他工作节点发送的消息),判断消息类型与组件的当前组件状态,进而判断当前组件状态是否应该转化为另一个状态(下一组件状态),并执行该状态下的响应操作,并使用Storm原生的机制在成功时ack,捕捉到错误时fail。
而同时,上述可靠性保障组件层203中提到的Spout相关组件AbstractReliabilityGuaranteeSource则需要在ack和fail时判断该消息ID所代表的消息类型,从而确认是否需要执行对应操作与发射消息。Storm原生的机制中原生的nextTuple方法则只会在组件的运行状态下发射数据消息,否则不发射。
应用组件层205则用于对常见的算子进行封装,并在初始化的时候向可靠性保障组件层203传入对应类型算子的实例,可靠性保障组件层203计算时调用该实例的方法进行计算。算子的类型包含:
通用类
■FilterBolt extends AbstractReliabilityGuaranteeSingleProcessNode
■MappingBolt extends AbstractReliabilityGuaranteeSingleProcessNode
■FlatMappingBolt extends AbstractReliabilityGuaranteeSingleProcessNode
■AggregatorBolt extends AbstractReliabilityGuaranteeSingleProcessNode
输入源
■ArraySource extends AbstractReliabilityGuaranteeSource
■CollectionSource extends AbstractReliabilityGuaranteeSource
■KafkaSource extends AbstractReliabilityGuaranteeSource
-输出源
■ConsolesSink extends AbstractReliabilityGuaranteeSink
■KafkaSink extends AbstractReliabilityGuaranteeSink
基于上述应用组件层205中算子的开发,对Storm原有API(接口)进行优化开发,称之为高阶API。此部分主要导入了自定义算子概念并优化了原拓扑构造器。自定义算子由业务逻辑分解后决定,交由实际业务实现者实现,同时也包含通用常见算子,例如RegexFilter、EntityValidationFilter等。优化后的拓扑构造器则基于常见算子构造对应的Bolt处理器与Spout,包含通用、聚合、流控、输入输出等常见类型算子。
自定义算子Operators
类名 | 泛型 | 方法 | 说明 |
Filter | <I> | validate(input:I):boolean | 自定义过滤算子 |
Mapper | <I,O> | map(input:I):O | 自定义映射算子 |
FlatMapper | <I,O> | flatMap(inputs:I[]):O | 自定义多对一映射算子 |
Aggregator | <I,O> | aggregate(inputA:I,inputB:I):O | 自定义聚合算子 |
Reducer | <I> | aggregate(inputA:I,inputB:I):I | 自定义单一聚合算子 |
Source | <I> | input():I[] | 自定义输入源 |
Sink | <O> | output(outputs:O[]) | 自定义输出源 |
拓扑构造器TopologyBuilder
本申请还提供一种针对上述基于STORM流式计算的数据处理系统的应用开发方法。在本实施例中,基于STORM流式计算的数据处理系统为Storm计算系统中。该方法主要包括以下部分:
1、部署集群
首先应该针对应用场景,以及未来的业务量增长进行评估,估算出集群规模,根据规模及性能瓶颈决定物理部署图。物理部署图的可参见图1所示以及图1的相关说明,此处不再赘述。
2、开发应用
开发应用时应当导入fbi-framework中的fbi-framework-common和fbi-framework-app-storm等包,接口开发可参见受管理状态接口的相关说明,以及上述高阶API说明,据此进行应用开发,同时也可以继承上述上下文组件层201、可靠性保障组件层203或应用组件层205中Storm组件的相关核心组件进行公用功能开发。
3、构建应用
构建应用分为两种:一种是将所有的依赖全量打入应用包,这样便不需要在部署的集群中导入依赖包。第二种是将相关应用代码打入应用包,此种情况下就需要在集群中部署依赖的本申请的组件包。
4、提交应用
集群启动后使用storm原生的提交命令便可以提交应用至集群,并开始执行。
上述基于STORM流式计算的数据处理系统中,在不改变原有架构的情况下实现了对工作节点的局部状态数据和全局状态数据的存储管理、精确一次的消息可靠性保障、高吞吐/低延时不同模式之间的切换、以及优化API,降低开发周期,减少人为错误。
本申请还提供一种基于STORM流式计算的数据处理方法,应用于上述基于STORM流式计算的数据处理系统中。上述基于STORM流式计算的数据处理系统包括STORM输入节点和多个STORM工作节点。在一实施例中,如图4所示,该基于STORM流式计算的数据处理方法包括以下步骤:
S100,STORM输入节点向STORM目标工作节点发送状态数据备份指令。
数据处理系统中,STORM输入节点用于接收到外部系统的消息队列中的任务时,将任务拆分成多个子任务,将多个子任务以消息的形式发送给每个STORM工作节点,由每个STORM工作节点进行对应处理,从而实现任务的流式计算。同时,在进行流式计算过程,STORM输入节点还用于监控各个STORM工作节点的工作状况,并向各个STORM工作节点发送控制消息以控制各个STORM工作节点的工作状态。在本实施例中,STORM输入节点向多个STORM工作节点中的STORM目标工作节点发送状态数据备份指令,以控制STORM目标工作节点对自身STORM工作节点的节点状态数据进行备份存储。STORM目标工作节点可以是多个STORM工作节点中的任意一个或者多个。
S200,STORM目标工作节点接收到状态数据备份指令时,对STORM目标工作节点的节点状态数据进行备份存储。
在流式计算中,STORM目标工作节点接收STORM输入节点分配的子任务,执行子任务的数据处理。此外,STORM目标工作节点同时也接收来自STORM输入节点的其他控制消息,根据控制消息进行对应的响应。例如,控制消息可以是,启动消息、初始化消息以及关闭消息等。在本实施例中,STORM目标工作节点在接收到STORM输入节点发送的状态数据备份指令时,获取STORM目标工作节点的节点状态数据,并将节点状态数据进行备份存储。其中,节点状态数据包括STORM工作节点中的全局状态数据和局部状态数据。例如,STORM目标工作节点中的各个变量,检查点中的偏移量Offset、标志位以及本地状态等数据。STORM目标工作节点将节点状态数据进行备份存储,以避免该STORM目标工作节点出现故障导致STORM流式计算中断时的数据丢失。
S300,当STORM流式计算中断时,STORM输入节点恢复STORM输入节点中最后一次备份的消息偏移量状态数据,并向STORM目标工作节点发送恢复状态数据指令。
在本实施例中,在系统进行流式计算过程,STORM输入节点实时监控各个STORM工作节点的工作状况。当STORM流式计算中断时,STORM输入节点向STORM目标工作节点发送恢复状态数据指令,以使该STORM目标工作节点恢复节点状态数据,继续执行STORM目标工作节点的相关的流式计算工作。同时,当STORM流式计算中断时,恢复STORM输入节点中最后一次备份的消息偏移量状态数据,以使得系统根据该消息偏移量状态数据继续执行后续的STORM流式计算。因此,当STORM流式计算中断时,系统可根据STORM输入节点中最后一次备份的消息偏移量状态数据以及STORM目标工作节点恢复的节点状态数据,继续执行后续的STORM流式计算。
S400,STORM目标工作节点接收到恢复状态数据指令时,从备份存储中恢复STORM目标工作节点的节点状态数据。
在本实施例中,STORM目标工作节点在执行系统的流式计算过程,有可能本STORM目标工作节点出现故障,如临时断电,系统宕机等,从而导致STORM目标工作节点的节点状态数据的丢失。此时,当接收到STORM输入节点发送的恢复状态数据指令时,从之前备份存储的节点状态数据中恢复STORM目标工作节点的节点状态数据,从而避免数据丢失导致的计算中断或终止。
在一实施例中,节点状态数据包括STORM目标工作节点的局部状态数据。此时步骤S200包括:STORM目标工作节点根据恢复状态数据指令,从备份存储中恢复STORM目标工作节点的局部状态数据。
具体地,STORM目标工作节点在接收到STORM输入节点发送的状态数据备份指令时,根据该状态数据备份指令对本STORM目标工作节点的局部状态数据进行备份存储。同时,在接收到STORM输入节点发送的恢复状态数据指令时,从备份存储中恢复STORM目标工作节点的局部状态数据。因此,在STORM流式计算过程,当STORM流式计算中断时,可以恢复STORM目标工作节点的局部状态数据以进行恢复STORM流式计算。
此外,节点状态数据还包括STORM目标工作节点的全局状态数据。此时,步骤S200包括:STORM目标工作节点将STORM目标工作节点的全局状态数据和局部状态数据进行分开备份存储。步骤S400包括:STORM目标工作节点根据恢复状态数据指令,从备份存储中恢复STORM目标工作节点的全局状态数据和/或局部状态数据。
在该实施例中,STORM目标工作节点对该STORM目标工作节点的全局状态数据和局部状态数据进行分开存储,以便于在后续节点状态数据的恢复操作中,快速恢复对应的节点状态数据。进一步地,当STORM目标工作节点根据恢复状态数据指令,从备份存储中恢复STORM目标工作节点的全局状态数据和/或局部状态数据时,直接从全局状态数据存储区或者局部状态数据存储区调取对应的数据,提高数据恢复的效率。
进一步地,步骤S200,包括:STORM目标工作节点采用分布式的方式将STORM目标工作节点的全局状态数据存储到分布式缓存中,同时将STORM目标工作节点的局部状态数据存储到Java虚拟机堆内存中。
具体地,全局状态数据由于需要在分布式的组件中可见,需要采用分布式缓存。而局部状态数据则存储于JVM(java虚拟机)堆内存中,具体存储到JVM堆内存的老年代存储区中。
在一实施例中,局部状态数据包括STORM目标工作节点的检查点的状态数据。此时,步骤S300,包括:STORM输入节点根据STORM目标工作节点的输入流和输出流的依赖关系,确定出STORM目标工作节点在执行流式计算过程发生节点状态数据丢失的目标检查点,向STORM目标工作节点发送根据目标检查点进行数据恢复的恢复状态数据指令。步骤S400,包括:STORM目标工作节点接收到恢复状态数据指令时,根据目标检查点的状态数据从备份存储中恢复STORM目标工作节点的节点状态数据。
在该实施例中,STORM目标工作节点存储有STORM目标工作节点的检查点的状态数据。检查点的状态数据包括偏移量Offset、标志位以及本地状态等数据。当STORM输入节点检查到STORM目标工作节点发生节点状态数据丢失时,根据目标工作节点的输入流和输出流的依赖关系,确定出对应的目标检查点,并向STORM目标工作节点发送根据该目标检查点进行数据恢复的恢复状态数据指令。STORM目标工作节点从指令中提取出目标检查点,根据目标检查点的状态数据从备份存储中恢复STORM目标工作节点的节点状态数据。具体地,STORM目标工作节点的检查点的状态数据包括检查点反馈的数据的偏移量、标志位以及STORM目标工作节点的本地状态数据。此时,STORM目标工作节点接收到恢复状态数据指令时,根据目标检查点的状态数据从备份存储中恢复STORM目标工作节点的节点状态数据,包括:STORM目标工作节点接收到恢复状态数据指令时,根据目标检查点的偏移量、标志位以及本地状态数据从备份存储中恢复STORM目标工作节点的节点状态数据。
在一实施例中,STORM目标工作节点中包括Bolt处理器组件和Spout发送器组件。此时,步骤S200,包括:Bolt处理器组件根据状态数据备份指令以及Bolt处理器组件的当前状态数据判断是否对节点状态数据进行备份存储;若是,将节点状态数据的备份存储的第一操作结果发送给Spout发送器组件;Spout发送器组件接收到第一操作结果时,根据第一操作结果的消息类型判断是否将第一操作结果进行发送。此时,步骤S400,包括:Bolt处理器组件根据恢复状态数据指令以及Bolt处理器组件的当前状态数据判断是否从备份存储中恢复节点状态数据;若是,将恢复节点状态数据的第二操作结果发送给Spout发送器组件;Spout发送器组件接收到第二操作结果时,根据第二操作结果的消息类型判断是否将第二操作结果进行发送。
在该实施例中,STORM目标工作节点中的Bolt处理器组件和Spout发送器组件均具有状态。也即是,Bolt处理器组件和Spout发送器组件均为有状态组件。例如,Recovery恢复状态:用于从CheckpointRepo中恢复状态数据。Backup备份状态:用于备份状态数据至CheckpointRepo中。Bolt处理器组件的当前状态数据判断是否对节点状态数据进行备份存储,以及根据当前状态数据判断是否恢复节点状态数据。Spout发送器组件则是根据接收到的消息的类型,确定是否将对应的操作结果进行发送处理。
上述基于STORM流式计算的数据处理方法和数据处理系统,数据处理系统的STORM输入节点向STORM目标工作节点发送的控制消息中包括状态数据备份指令的消息。STORM目标工作节点接收到STORM输入节点发送的消息时,对消息进行识别,确定为状态数据备份指令的消息时,根据状态数据备份指令对STORM目标工作节点的节点状态数据进行备份存储。数据处理系统在执行STORM流式计算时,若出现STORM流式计算中断,导致STORM输入节点以及STORM目标工作节点的数据丢失时,STORM输入节点恢复该STORM输入节点中最后一次备份的消息偏移量状态数据,并向STORM目标工作节点发送恢复状态数据指令,以使得STORM目标工作节点根据该恢复状态数据指令,从备份存储中恢复STORM目标工作节点的节点状态数据。因此,当STORM流式计算中断时,可以通过恢复STORM输入节点的最后一次备份的消息偏移量状态数据,以及恢复STORM目标工作节点的节点状态数据,继续执行STORM流式计算,避免STORM流式计算过程的数据丢失问题。
综上所述,本申请可以确保流式计算过程消息的可靠性与幂等性,并进行消息的重演,防止数据丢失或者消息重复等问题,特别在集群宕机、重启方面有重大意义,确保了大数据中数据准确性,从而减少了数据漂移、数据准确性低的情况。抽象分离后带来了公共功能的实现与可靠性的保障,提供了高阶API的开发接口,进而减少了开发量,并可以减少人为错误的产生,降低学习成本。流中批量数据处理反转了低延时低吞吐的特性,从而获得了较高的吞吐性能,增强了抗压能力。此外,本申请的基于流式计算的数据处理方法以及数据处理系统可以拓展以Storm为核心的流式计算应用领域,例如微服务领域、事件处理领域、机器学习领域等,使其不仅仅局限于消息处理、实时ETL等。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种基于STORM流式计算的数据处理方法,所述方法包括:
STORM输入节点向STORM目标工作节点发送状态数据备份指令;
所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储;
当STORM流式计算中断时,所述STORM输入节点恢复所述STORM输入节点中最后一次备份的消息偏移量状态数据,以使得根据所述消息偏移量状态数据继续执行后续的STORM流式计算,并向所述STORM目标工作节点发送恢复状态数据指令;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,以避免所述节点状态数据丢失导致所述后续的STORM流式计算的中断或终止;
其中,所述消息偏移量状态数据以及所述节点状态数据均用于所述后续的STORM流式计算。
2.根据权利要求1所述的方法,其特征在于,所述节点状态数据包括所述STORM目标工作节点的局部状态数据;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点根据所述恢复状态数据指令,从备份存储中恢复所述STORM目标工作节点的局部状态数据。
3.根据权利要求2所述的方法,其特征在于,所述节点状态数据还包括STORM目标工作节点的全局状态数据;所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,包括:
所述STORM目标工作节点采用分布式的方式将所述STORM目标工作节点的全局状态数据存储到分布式缓存中,同时将所述STORM目标工作节点的局部状态数据存储到Java虚拟机堆内存中。
4.根据权利要求2所述的方法,其特征在于,所述局部状态数据包括所述STORM目标工作节点的检查点的状态数据;所述STORM输入节点向所述STORM目标工作节点发送恢复状态数据指令,包括:
所述STORM输入节点根据所述STORM目标工作节点的输入流和输出流的依赖关系,确定出所述STORM目标工作节点在执行STORM流式计算过程发生节点状态数据丢失的目标检查点,向所述STORM目标工作节点发送根据所述目标检查点进行数据恢复的恢复状态数据指令;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据。
5.根据权利要求4所述的方法,其特征在于,所述STORM目标工作节点的检查点的状态数据包括检查点反馈的数据的偏移量、标志位以及所述STORM目标工作节点的本地状态数据;所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述STORM目标工作节点接收到所述恢复状态数据指令时,根据所述目标检查点的所述偏移量、标志位以及本地状态数据从备份存储中恢复所述STORM目标工作节点的所述节点状态数据。
6.根据权利要求1所述的方法,其特征在于,所述STORM目标工作节点中包括Bolt处理器组件和Spout发送器组件;所述STORM目标工作节点接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,包括:
所述Bolt处理器组件根据所述状态数据备份指令以及所述Bolt处理器组件的当前状态数据判断是否对所述节点状态数据进行备份存储;若是,将所述节点状态数据的备份存储的第一操作结果发送给所述Spout发送器组件;所述Spout发送器组件接收到所述第一操作结果时,根据所述第一操作结果的消息类型判断是否将所述第一操作结果进行发送;
所述STORM目标工作节点接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,包括:
所述Bolt处理器组件根据所述恢复状态数据指令以及所述Bolt处理器组件的当前状态数据判断是否从备份存储中恢复所述节点状态数据;若是,将恢复所述节点状态数据的第二操作结果发送给所述Spout发送器组件;所述Spout发送器组件接收到所述第二操作结果时,根据所述第二操作结果的消息类型判断是否将所述第二操作结果进行发送。
7.一种基于STORM流式计算的数据处理系统,其特征在于,所述系统包括STORM输入节点和多个STORM工作节点;
所述STORM输入节点用于向多个所述STORM工作节点中的STORM目标工作节点发送状态数据备份指令,以及当STORM流式计算中断时,恢复所述STORM输入节点中最后一次备份的消息偏移量状态数据,以使得根据所述消息偏移量状态数据继续执行后续的STORM流式计算,并向所述STORM目标工作节点发送恢复状态数据指令;
所述STORM目标工作节点用于接收到所述状态数据备份指令时,对所述STORM目标工作节点的节点状态数据进行备份存储,以及接收到所述恢复状态数据指令时,从备份存储中恢复所述STORM目标工作节点的所述节点状态数据,以避免所述节点状态数据丢失导致所述后续的STORM流式计算的中断或终止。
8.根据权利要求7所述的系统,其特征在于,所述节点状态数据包括STORM目标工作节点的全局状态数据和局部状态数据;所述系统还包括高速缓冲存储器集群以及顺序存储器集群;所述高速缓冲存储器集群用于存储所述全局状态数据,所述顺序存储器集群用于存储所述局部状态数据。
9.根据权利要求8所述的系统,其特征在于,所述STORM目标工作节点中设置有受管理状态接口;所述受管理状态接口与所述高速缓冲存储器集群连接,用于传输所述全局状态数据;和/或,所述受管理状态接口与所述顺序存储器集群连接,用于传输所述局部状态数据。
10.根据权利要求7所述的系统,其特征在于,所述STORM目标工作节点设置有可靠性保障组件层;所述可靠性保障组件层包含一个或多个第一Bolt处理器组件以及一个或多个第一Spout发送器组件;所述第一Bolt处理器组件与第一Spout发送器组件均为有状态组件;
所述第一Bolt处理器组件用于在接收到消息时,根据消息的类型与所述第一Bolt处理器组件的当前组件状态判断是否将组件状态进行转换;若是,将所述当前组件状态转换为所述消息的类型对应的下一组件状态,并执行所述下一组件状态下的响应操作,将响应操作的响应结果发送给所述第一Spout发送器组件;
所述第一Spout发送器组件在接收到所述响应结果时,判断所述响应结果对应的消息类型,根据判断结果确定是否执行该响应结果对应的响应操作。
11.根据权利要求10所述的系统,其特征在于,所述可靠性保障组件层还包括单元素处理单元和批量处理单元;所述单元素处理单元包括第二Bolt处理器组件,所述第二Bolt处理器组件用于处理流经所述可靠性保障组件层的单条消息;所述批量处理单元包括第三Bolt处理器组件,所述第三Bolt处理器组件用于批量处理流经所述可靠性保障组件层的多条消息。
12.根据权利要求10所述的系统,其特征在于,所述STORM目标工作节点还设置有上下文组件层和应用组件层;所述上下文组件层包含一个或多个第四Bolt处理器组件以及一个或多个第二Spout发送器组件;所述上下文组件层用于向所述可靠性保障组件层的提供上下文信息;所述应用组件层包含一个或多个第五Bolt处理器组件以及一个或多个第三Spout发送器组件,所述应用组件层用于封装预设算子,并在初始化时向所述可靠性保障组件层传送所述预设算子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910735948.4A CN110569144B (zh) | 2019-08-09 | 2019-08-09 | 基于storm流式计算的数据处理方法和数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910735948.4A CN110569144B (zh) | 2019-08-09 | 2019-08-09 | 基于storm流式计算的数据处理方法和数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569144A CN110569144A (zh) | 2019-12-13 |
CN110569144B true CN110569144B (zh) | 2022-09-06 |
Family
ID=68775021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910735948.4A Active CN110569144B (zh) | 2019-08-09 | 2019-08-09 | 基于storm流式计算的数据处理方法和数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569144B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541747B (zh) * | 2020-04-10 | 2023-05-12 | 深圳前海微众银行股份有限公司 | 一种数据的检查点设置方法及装置 |
CN111930748B (zh) * | 2020-08-07 | 2023-08-08 | 北京百度网讯科技有限公司 | 流式计算系统数据追踪方法、装置、设备以及存储介质 |
CN112650625B (zh) * | 2020-12-28 | 2024-06-14 | 武汉达梦数据技术有限公司 | 一种针对数据库的流式备份还原方法、存储介质及装置 |
CN113486063A (zh) * | 2021-07-05 | 2021-10-08 | 国网河北省电力有限公司信息通信分公司 | 电力物联网中流数据处理方法、装置及终端设备 |
CN115794416B (zh) * | 2023-02-02 | 2023-04-07 | 徐工汉云技术股份有限公司 | 基于Storm和Nacos的数据热切换方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3044678A1 (en) * | 2013-09-13 | 2016-07-20 | Hewlett Packard Enterprise Development LP | Failure recovery of a task state in batch-based stream processing |
CN103699599B (zh) * | 2013-12-13 | 2016-10-05 | 华中科技大学 | 一种基于Storm实时流计算框架的消息可靠处理保障方法 |
CN104063293B (zh) * | 2014-07-04 | 2017-06-27 | 华为技术有限公司 | 一种数据备份方法及流计算系统 |
CN109327509B (zh) * | 2018-09-11 | 2022-01-18 | 武汉魅瞳科技有限公司 | 一种主/从架构的低耦合的分布式流式计算系统 |
-
2019
- 2019-08-09 CN CN201910735948.4A patent/CN110569144B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110569144A (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110569144B (zh) | 基于storm流式计算的数据处理方法和数据处理系统 | |
US7685227B2 (en) | Message forwarding backup manager in a distributed server system | |
JP5373770B2 (ja) | 分散型、耐障害性、および高可用性を達成するための決定性コンピューティング・システム、方法、およびプログラム・ストレージ・デバイス(分散型、耐障害性、および高可用性のコンピューティング・システム) | |
US8055937B2 (en) | High availability and disaster recovery using virtualization | |
USRE47501E1 (en) | Application program interface access to hardware services for storage management applications | |
US10491560B2 (en) | Message delivery in messaging networks | |
US4628508A (en) | Computer of processor control systems | |
EP3200073B1 (en) | Method, apparatus and system for migrating virtual machine backup information | |
WO2017071460A1 (zh) | 一种容器监控方法和装置 | |
Ren et al. | AQuA: An adaptive architecture that provides dependable distributed objects | |
Kumar et al. | Fault tolerance in real time distributed system | |
RU2746042C1 (ru) | Способ и система для передачи сообщения | |
CN103778031A (zh) | 一种云环境下的分布式系统多级故障容错方法 | |
CN104063293A (zh) | 一种数据备份方法及流计算系统 | |
CN109656742A (zh) | 一种节点异常处理方法、装置及存储介质 | |
CN111414241A (zh) | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 | |
CN109189573B (zh) | 一种基于nvdimm的异构内存管理系统 | |
KR101024249B1 (ko) | 실시간 데이터 복제 시스템 | |
CN112015561B (zh) | 用于流式计算服务的方法、装置和系统 | |
CN106528324A (zh) | 故障恢复的方法和装置 | |
CN110908801A (zh) | 基于区块链的数据处理方法、装置、计算机设备和存储介质 | |
CN111274050A (zh) | 业务数据转发方法、装置、计算机设备和存储介质 | |
Li et al. | Fault-tolerant cluster management for reliable high-performance computing | |
Imran et al. | Cloud-niagara: A high availability and low overhead fault tolerance middleware for the cloud | |
CN112612604B (zh) | 基于Actor模型的任务调度方法、装置 |
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 |