CN103699599A - 一种基于Storm实时流计算框架的消息可靠处理保障方法 - Google Patents

一种基于Storm实时流计算框架的消息可靠处理保障方法 Download PDF

Info

Publication number
CN103699599A
CN103699599A CN201310682070.5A CN201310682070A CN103699599A CN 103699599 A CN103699599 A CN 103699599A CN 201310682070 A CN201310682070 A CN 201310682070A CN 103699599 A CN103699599 A CN 103699599A
Authority
CN
China
Prior art keywords
data
message
tuple
task
workflow
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.)
Granted
Application number
CN201310682070.5A
Other languages
English (en)
Other versions
CN103699599B (zh
Inventor
谢夏
金海�
胡亚军
柯西江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310682070.5A priority Critical patent/CN103699599B/zh
Publication of CN103699599A publication Critical patent/CN103699599A/zh
Application granted granted Critical
Publication of CN103699599B publication Critical patent/CN103699599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Abstract

本发明公开了一种基于Storm实时流计算框架的消息可靠处理保障方法,包括:①预处理阶段,对环境做初始化工作;②集群计算过程中对已经发射并正处于计算状态的数据进行跟踪;③发射任务在监听到消息处理成功的信号时,清空缓存区中属于它的所有子元组的跟踪信息;④发射任务在监听到消息处理失败的信号时,定位产生处理失败的任务的位置和待恢复数据;⑤根据跟踪信息和xml文件构建消息恢复程序,然后从缓存区读取待恢复数据,执行消息恢复程序;⑥清空缓存区,释放内存空间。本发明在消息恢复时避免了复杂拓扑业务下存在的大规模重复计算,有效地减少消息恢复的计算量,从而提升整个业务场景下数据处理的性能,保证实时处理对低延迟的需求。

Description

一种基于Storm实时流计算框架的消息可靠处理保障方法
技术领域
本发明属于海量数据处理、实时流计算和容错领域,更具体地,涉及一种基于Storm实时流计算框架的消息可靠处理保障方法。
背景技术
近年来大数据处理的需求不断增多,如何处理庞大的海量数据充满挑战。随着互联网的进一步发展,从门户网站浏览型到搜索型到SNS关系交互传递型,以及电子商务将生活中的流通环节在线化。对于效率的要求让人们对实时性的要求进一步提升,而信息的交互正在往信息网的方向发展,必然带来数据各个维度的交叉关联,数据爆炸已不可避免。流式数据实时计算框架随之诞生,比如Twitter Storm、Yahoo S4、IBM Streambase、Borealis等。通过类似于Storm的实时数据流计算框架,开发人员可以快速搭建一套健壮的实时流计算框架,配合数据库使用可以低成本的开发出优秀的实时产品。
Storm是2011年9月由Twitter公司开源的流式数据实时计算框架,是目前工业界技术最成熟的流计算框架之一。数据流处理平台通常基于故障恢复的高可用方法有三类:积极备用(Active Standby),消极备用(Passive Standby)和上游备份(Upstream Backup)。在上游备份方式下,每个处理节点的缓存队列维持输出数据到一直到接收到来自下游节点的确认信号为止,在下游处理节点发生故障时,通过上游重发队列中的数据来恢复计算。为了保证实时计算在处理数据时低处理时延的特性、同时降低资源消耗,Storm对上游备份机制进行了改进:(1)监控线程(Acker)对处理过程进行跟踪,使用高效的异或算法定位,一旦检测到故障发生,通知数据源重新发射根元组数据;(2)处理节点无需缓存计算结果,而是在处理完元组后发送确认信号给监控线程,监控线程负责监视根元组及其衍生的元组树上的元组是否完成处理。
为了保证数据处理的低延迟性,Storm对数据的处理完全基于内存。如图1所示,数据以流的方式持续不断到来,发射任务(Spout)将消息以元组的数据结构发送给处理任务(Bolt),处理任务对元组执行已定义好的计算,再将处理后的结果子元组传递给下一个处理任务来计算,这样一个个算子节点和一条条数据流边形成了工作流(topology)。一个消息从发射任务发送出来可能导致成百上千的消息基于此消息被创建,这些消息构成一个树状结构,称之为元组树。一个元组数据被完整处理指由它衍生的元组树上的消息都被成功处理。Storm消息恢复机制可以确保发射任务发射的每一个元组数据都会被完整的处理。
Storm为保证消息处理的可靠性,消息处理失败发生时,容错机制会通过监控线程检测到消息失败,同时映射到所在的根元组,然后通知发射任务开始重新处理整个元组树上的任务,在此情况下,不可避免的存在部分已经计算过的任务将重新计算,如图2所示。此消息恢复的代价与元组树上处理失败元组的高度成正比,消息重复处理浪费计算资源,对于较复杂的实时场景,恢复时间会很长。
综上所述,此故障恢复机制下,消息恢复是通过监控线程通知发射任务,然后由发射任务重新发送根元组给下游处理任务重做计算完成的,由于计算基于内存,每次处理任务的执行线程在发射处理后的元组给下游任务时不继续保存元组,因此消息恢复要重做元组树上的所有任务。在实时计算工作流场景较复杂,元组树高度成千上万,处理任务计算逻辑复杂度很高的情况下,一旦某个子元组处理失败,消息恢复代价将非常高。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于Storm实时流计算框架的消息可靠处理保障方法,其目的在于,解决现有Storm系统中存在的消息重复处理浪费计算资源,在处理任务计算逻辑复杂度很高的情况下,一旦某个子元组处理失败,消息恢复代价非常高的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于Storm实时流计算框架的消息可靠处理保障方法,包括以下步骤:
(1)用户创建工作流程序,根据该工作流程序的拓扑信息生成xml文件,并将该工作流程序发送到主节点,其中工作流程序包括多个发射任务、处理任务以及任务的上下游关系;
(2)主节点根据接收到的工作流程序生成拓扑程序,用于存储工作流任务,根据该拓扑程序创建缓存区,并将不同的工作流任务分配到对应的从节点执行,其中工作流任务包括发射任务或处理任务;
(3)从节点启动工作者进程判断来自主节点的工作流任务的类型是否为发射任务,如果是发射任务则进入步骤(4),否则持续等待下一个工作流任务,并重复步骤(3);
(4)发射任务读取工作流程序中指定的数据源中的流式数据,将其封装成根元组数据,并在根元组数据中新增哈希表,用于记录该根元组数据的位置信息;
(5)发射任务根据工作流程序中组件的上下游关系将根元组数据发射给其下游的处理任务,并发送该根元组数据的初始化信号到监控线程;
(6)监控线程在本地哈希表中创建并维护该根元组数据的监控信息;
(7)发射任务监听是否接收到来自监控线程的根元组数据的确认信号,如果接收到则判断确认信号的类型,当类型是处理成功信号时,清空步骤(2)中的缓存区记录的根元组数据所在元组树上所有子元组数据的跟踪信息;当类型是处理失败信号时,则根据缓存数据和确认信号定位出消息处理失败任务的位置,记录该位置到任务处理失败集合并将待恢复的数据写入缓存区中相应的消息队列中,然后清空缓存区中此根元组数据所在元组树上的已被处理的元组数据的跟踪信息,如果未接收到则进入步骤(8);
(8)从节点启动工作者进程判断来自主节点的工作流任务的类型是否为处理任务,如果是处理任务则进入步骤(9),否则返回步骤(3);
(9)处理任务对来自上游的元组数据进行处理,以生成新的元组数据,该新的元组数据是根元组数据所在元组树上的子元组,在子元组数据中新增哈希表记录子元组数据的位置信息;
(10)处理任务将来自上游的元组数据的跟踪信息写入步骤(2)中的缓存区;
(11)处理任务将新的元组数据发送给下游的处理任务,同时发送元组数据处理成功的确认信号到监控线程;
(12)监控线程将确认信号的值与本地哈希表中根元组数据的值进行异或运算,并判断异或运算的结果是否为0,如果为0,则发送根元组处理成功的确认信号给发射任务,然后返回步骤(7),否则进入步骤(13);
(13)下游的处理任务重复执行步骤(8)至(12),直到无工作流任务为止;
(14)监控线程检查本地哈希表中根元组数据的值,如果值不为0,则发送根元组处理失败的确认信号给发射任务,然后返回步骤(7),否则过程结束;
(15)Storm集群完成处理流数据后,用户搭建恢复工作流程序并提交到Storm集群执行。
优选地,步骤(1)具体为,用户根据流处理应用的业务场景创建工作流程序,然后创建用于记录工作流程序的拓扑结构信息的xml文件,最后提交工作流程序到集群的主节点等待被处理。
优选地,步骤(2)具体为,主节点的服务端程序监听到用户提交工作流程序的请求后开始接收,接收结束后对原工作流程序进行封装,以生成Storm可以处理的拓扑程序,并启动监控线程,然后在计算开始前创建程序执行所需的缓存区,最后主节点将拓扑程序中记录的不同的工作流任务分配到对应的从节点。
优选地,元组数据跟踪信息包括:元组数据的数据值、处理任务的标识及根元组数据的标识。
优选地,步骤(15)具体包括以下子步骤:
(15-1)解析步骤(1)生成的xml文件,并读取工作流程序的任务;
(15-2)根据缓存区的任务处理失败集合中处理失败任务的位置信息创建消息恢复程序的工作流;
(15-3)将恢复工作流程序的发射任务的消息源设置为步骤(15-2)中从缓存区读到的处理任务对应的消息队列;
(15-4)提交消息恢复程序到Storm集群并执行恢复计算;
(15-5)判断任务处理失败集合是否为空,如果为空则进入步骤(15-6),否则说明仍有处理任务需要恢复处理,然后返回步骤(15-2);
(15-6)清空缓存区中的数据,并释放内存空间。
优选地,步骤(15-2)具体为,从缓存区读取任务处理失败集合中处理任务的信息,恢复程序中使用发射任务代替该处理任务,然后根据步骤(15-1)中解析出的xml记录的原工作流程序的拓扑结构信息确定剩余处理任务和各自的位置并重新构建恢复工作流程序,最后从任务处理失败集合中移除该处理任务的信息。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、高效性:本发明避免消息恢复时从数据源开始重做元组树上所有任务,解决重复计算问题,恢复代价不再取决于工作流的复杂程度和消息处理失败的位置;从而有效的提高消息恢复速度,降低对计算资源的消耗;
2、实时性:本发明消息恢复效率的提高,进一步满足了实时流处理框架低处理延迟的特点,提高实时处理能力。
3、方便性:本发明完全由软件实现,在开源项目Storm的基础上开发,无需特殊的硬件支撑环境,易于安装和使用;
4、透明性:本方法的实现兼容Storm计算系统的工作流编程范式,完全不用修改原工作流程序,支持Storm系统原有功能,同时,无需改变软硬件环境。
附图说明
图1是现有Storm系统的工作流图。
图2是现有Storm系统消息恢复的示意图。
图3为本发明基于Storm实时流计算框架的消息可靠处理保障方法的原理图。
图4为本发明基于Storm实时流计算框架的消息可靠处理保障方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,通过设计新的消息监控与确认机制并引入追踪算法定位消息失败发生的位置,同时加入缓存机制存储处理任务处理的中间结果数据使算子节点状态持久化;修改Storm相关组件以实现新的消息恢复策略。
本系统的工作流实例如图3所示。实时应用场景被Storm封装成各组件组成的拓扑结构工作流,首先消息队列将信息以数据流的形式传递给发射组件,发射组件会将数据分解成基本数据单元元组,按序发射根元组给下游处理任务,发射前将根元组注册给监控线程(Acker);处理任务在处理完元组后发送新元组给下游组件,同时发送确认信息给监控线程。消息恢复时,从产生消息失败组件的上游组件开始恢复计算,恢复数据从缓存区消息队列中获取,这样解决了Storm原容错机制从数据源发射组件重发根元组而产生的重复计算问题。
如图4所示,本发明基于Storm实时流计算框架的消息可靠处理保障方法包括以下步骤:
(1)用户创建工作流程序(Topology),根据该工作流程序的拓扑信息生成xml文件,并将该工作流程序发送到主节点;具体而言,用户根据流处理应用的业务场景(例如实时搜索、流数据挖掘、Web日志分析等)创建工作流程序,工作流程序包括多个发射任务(Spout)、处理任务(Bolt)以及任务的上下游关系,然后创建用于记录工作流程序的拓扑结构信息的xml文件,最后提交工作流程序到集群的主节点等待被处理;
(2)主节点根据接收到的工作流程序生成拓扑程序,用于存储工作流任务,根据该拓扑程序创建缓存区,并将不同的工作流任务分配到对应的从节点执行;具体而言,主节点的服务端程序监听到用户提交工作流程序的请求后开始接收,接收结束后对原工作流程序进行封装,以生成Storm可以处理的拓扑程序,并启动监控线程,然后在计算开始前创建程序执行所需的缓存区,最后主节点将拓扑程序中记录的不同的工作流任务分配到对应的从节点,工作流任务包括发射任务(Spout)或处理任务(Bolt);
(3)从节点启动工作者(worker)进程判断来自主节点的工作流任务的类型是否为发射任务,如果是发射任务则进入步骤(4),否则持续等待下一个工作流任务,并重复步骤(3);
(4)发射任务读取工作流程序中指定的数据源中的流式数据,将其封装成根元组数据,并在根元组数据中新增哈希表,用于记录该根元组数据的位置信息;
本步骤的优点在于,在根元组数据初始化阶段记录位置信息,方便其子元组数据记录位置信息时使用;
(5)发射任务根据工作流程序中组件的上下游关系将根元组数据发射给其下游的处理任务,并发送该根元组数据的初始化信号到监控线程;
(6)监控线程在本地哈希表中创建并维护该根元组数据的监控信息;
(7)发射任务监听是否接收到来自监控线程的根元组数据的确认信号,如果接收到则判断确认信号的类型,当类型是处理成功信号时,清空步骤(2)中的缓存区记录的根元组数据所在元组树上所有子元组数据的跟踪信息;当类型是处理失败信号时,则根据缓存数据和确认信号定位出消息处理失败任务的位置,记录该位置到任务处理失败集合并将待恢复的数据写入缓存区中相应的消息队列中,然后清空缓存区中此根元组数据所在元组树上的已被处理的元组数据的跟踪信息,如果未接收到则进入步骤(8);
本步骤的优点在于,及时释放内存中已经处理成功的元组的跟踪信息,防止内存溢出;处理失败时根据跟踪信息定位出失败产生的位置并释放内存。
(8)从节点启动工作者进程判断来自主节点的工作流任务的类型是否为处理任务,如果是处理任务则进入步骤(9),否则返回步骤(3);
(9)处理任务对来自上游的元组数据进行处理,以生成新的元组数据,该新的元组数据是根元组数据所在元组树上的子元组,在子元组数据中新增哈希表记录子元组数据的位置信息;
(10)处理任务将来自上游的元组数据的跟踪信息写入步骤(2)中的缓存区,元组数据跟踪信息包括:元组数据的数据值、处理任务的标识及根元组数据的标识;
(11)处理任务将新的元组数据发送给下游的处理任务,同时发送元组数据处理成功的确认信号到监控线程;
(12)监控线程根据该确认信号在本地哈希表中更新根元组数据的监控信息,即将确认信号的值与本地哈希表中根元组数据的值进行异或运算,并判断异或运算的结果是否为0,如果为0,则发送根元组处理成功的确认信号给发射任务,然后返回步骤(7),否则进入步骤(13);
(13)下游的处理任务重复执行步骤(8)至(12),直到无工作流任务为止;
(14)监控线程检查本地哈希表中根元组数据的值,如果值不为0,则发送根元组处理失败的确认信号给发射任务,然后返回步骤(7),否则过程结束;
(15)Storm集群完成处理流数据后,用户搭建恢复工作流程序并提交到Storm集群执行,具体包括以下子步骤:
(15-1)解析步骤(1)生成的xml文件,并读取工作流程序的任务;
(15-2)根据缓存区的任务处理失败集合中处理失败任务的位置信息创建消息恢复程序的工作流;具体而言,从缓存区读取任务处理失败集合中处理任务的信息,恢复程序中使用发射任务代替该处理任务,然后根据步骤(15-1)中解析出的xml记录的原工作流程序的拓扑结构信息确定剩余处理任务和各自的位置并重新构建恢复工作流程序,最后从任务处理失败集合中移除该处理任务的信息;
(15-3)将恢复工作流程序的发射任务的消息源设置为步骤(15-2)中从缓存区读到的处理任务对应的消息队列;
(15-4)提交消息恢复程序到Storm集群并执行恢复计算;
(15-5)判断任务处理失败集合是否为空,如果为空则进入步骤(15-6),否则说明仍有处理任务需要恢复处理,然后返回步骤(15-2);
(15-6)清空缓存区中的数据,并释放内存空间。
本发明适用于分布式大数据实时流计算应用环境,在流处理系统框架的软件层面进行容错,可以满足系统在消息处理过程中,当负责处理任务的线程处理数据失败情况下对消息进行恢复。同时保障恢复低延迟、低成本的需求且不对处理结果产生误差影响。与Storm原有消息恢复机制相比,本发明避免了复杂拓扑业务下可能会进行大量重复计算问题,减少消息恢复的计算量,从而提升整个业务场景下海量数据处理的性能。
综上所述,本发明解决了消息处理失败产生情况下,消息恢复时对消息的重复处理问题,从而在消息恢复时避免了复杂拓扑业务下存在的大规模重复计算,有效地减少消息恢复的计算量,从而提升整个业务场景下数据处理的性能,保证实时处理对低延迟的需求。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于Storm实时流计算框架的消息可靠处理保障方法,其特征在于,包括以下步骤:
(1)用户创建工作流程序,根据该工作流程序的拓扑信息生成xml文件,并将该工作流程序发送到主节点,其中工作流程序包括多个发射任务、处理任务以及任务的上下游关系;
(2)主节点根据接收到的工作流程序生成拓扑程序,用于存储工作流任务,根据该拓扑程序创建缓存区,并将不同的工作流任务分配到对应的从节点执行,其中工作流任务包括发射任务或处理任务;
(3)从节点启动工作者进程判断来自主节点的工作流任务的类型是否为发射任务,如果是发射任务则进入步骤(4),否则持续等待下一个工作流任务,并重复步骤(3);
(4)发射任务读取工作流程序中指定的数据源中的流式数据,将其封装成根元组数据,并在根元组数据中新增哈希表,用于记录该根元组数据的位置信息;
(5)发射任务根据工作流程序中组件的上下游关系将根元组数据发射给其下游的处理任务,并发送该根元组数据的初始化信号到监控线程;
(6)监控线程在本地哈希表中创建并维护该根元组数据的监控信息;
(7)发射任务监听是否接收到来自监控线程的根元组数据的确认信号,如果接收到则判断确认信号的类型,当类型是处理成功信号时,清空步骤(2)中的缓存区记录的根元组数据所在元组树上所有子元组数据的跟踪信息;当类型是处理失败信号时,则根据缓存数据和确认信号定位出消息处理失败任务的位置,记录该位置到任务处理失败集合并将待恢复的数据写入缓存区中相应的消息队列中,然后清空缓存区中此根元组数据所在元组树上的已被处理的元组数据的跟踪信息,如果未接收到则进入步骤(8);
(8)从节点启动工作者进程判断来自主节点的工作流任务的类型是否为处理任务,如果是处理任务则进入步骤(9),否则返回步骤(3);
(9)处理任务对来自上游的元组数据进行处理,以生成新的元组数据,该新的元组数据是根元组数据所在元组树上的子元组,在子元组数据中新增哈希表记录子元组数据的位置信息;
(10)处理任务将来自上游的元组数据的跟踪信息写入步骤(2)中的缓存区;
(11)处理任务将新的元组数据发送给下游的处理任务,同时发送元组数据处理成功的确认信号到监控线程;
(12)监控线程将确认信号的值与本地哈希表中根元组数据的值进行异或运算,并判断异或运算的结果是否为0,如果为0,则发送根元组处理成功的确认信号给发射任务,然后返回步骤(7),否则进入步骤(13);
(13)下游的处理任务重复执行步骤(8)至(12),直到无工作流任务为止;
(14)监控线程检查本地哈希表中根元组数据的值,如果值不为0,则发送根元组处理失败的确认信号给发射任务,然后返回步骤(7),否则过程结束;
(15)Storm集群完成处理流数据后,用户搭建恢复工作流程序并提交到Storm集群执行。
2.根据权利要求1所述的消息可靠处理保障方法,其特征在于,步骤(1)具体为,用户根据流处理应用的业务场景创建工作流程序,然后创建用于记录工作流程序的拓扑结构信息的xml文件,最后提交工作流程序到集群的主节点等待被处理。
3.根据权利要求1所述的消息可靠处理保障方法,其特征在于,步骤(2)具体为,主节点的服务端程序监听到用户提交工作流程序的请求后开始接收,接收结束后对原工作流程序进行封装,以生成Storm可以处理的拓扑程序,并启动监控线程,然后在计算开始前创建程序执行所需的缓存区,最后主节点将拓扑程序中记录的不同的工作流任务分配到对应的从节点。
4.根据权利要求1所述的消息可靠处理保障方法,其特征在于,元组数据跟踪信息包括:元组数据的数据值、处理任务的标识及根元组数据的标识。
5.根据权利要求1所述的消息可靠处理保障方法,其特征在于,步骤(15)具体包括以下子步骤:
(15-1)解析步骤(1)生成的xml文件,并读取工作流程序的任务;
(15-2)根据缓存区的任务处理失败集合中处理失败任务的位置信息创建消息恢复程序的工作流;
(15-3)将恢复工作流程序的发射任务的消息源设置为步骤(15-2)中从缓存区读到的处理任务对应的消息队列;
(15-4)提交消息恢复程序到Storm集群并执行恢复计算;
(15-5)判断任务处理失败集合是否为空,如果为空则进入步骤(15-6),否则说明仍有处理任务需要恢复处理,然后返回步骤(15-2);
(15-6)清空缓存区中的数据,并释放内存空间。
6.根据权利要求5所述的消息可靠处理保障方法,其特征在于,步骤(15-2)具体为,从缓存区读取任务处理失败集合中处理任务的信息,恢复程序中使用发射任务代替该处理任务,然后根据步骤(15-1)中解析出的xml记录的原工作流程序的拓扑结构信息确定剩余处理任务和各自的位置并重新构建恢复工作流程序,最后从任务处理失败集合中移除该处理任务的信息。
CN201310682070.5A 2013-12-13 2013-12-13 一种基于Storm实时流计算框架的消息可靠处理保障方法 Active CN103699599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310682070.5A CN103699599B (zh) 2013-12-13 2013-12-13 一种基于Storm实时流计算框架的消息可靠处理保障方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310682070.5A CN103699599B (zh) 2013-12-13 2013-12-13 一种基于Storm实时流计算框架的消息可靠处理保障方法

Publications (2)

Publication Number Publication Date
CN103699599A true CN103699599A (zh) 2014-04-02
CN103699599B CN103699599B (zh) 2016-10-05

Family

ID=50361127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310682070.5A Active CN103699599B (zh) 2013-12-13 2013-12-13 一种基于Storm实时流计算框架的消息可靠处理保障方法

Country Status (1)

Country Link
CN (1) CN103699599B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104050261A (zh) * 2014-06-16 2014-09-17 深圳先进技术研究院 基于Storm的可变逻辑的通用数据处理系统及方法
CN104615777A (zh) * 2015-02-27 2015-05-13 浪潮集团有限公司 一种基于流式计算引擎的实时数据处理方法及装置
CN104639466A (zh) * 2015-03-05 2015-05-20 北京航空航天大学 一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法
CN105141472A (zh) * 2015-08-07 2015-12-09 北京思特奇信息技术股份有限公司 一种基于异或运算的流计算跟踪方法及系统
CN105224550A (zh) * 2014-06-09 2016-01-06 腾讯科技(深圳)有限公司 分布式流计算系统和方法
CN105323151A (zh) * 2015-11-16 2016-02-10 东软集团股份有限公司 一种消息处理可靠性追踪方法及装置
CN105512162A (zh) * 2015-09-28 2016-04-20 杭州圆橙科技有限公司 一种基于Storm的流数据实时智能化处理框架
CN105573760A (zh) * 2015-12-16 2016-05-11 南京邮电大学 基于storm的物联网数据处理系统及方法
CN105573840A (zh) * 2015-12-08 2016-05-11 东软集团股份有限公司 工作流运行期的事件处理方法和装置
CN105677681A (zh) * 2014-11-21 2016-06-15 北京神州泰岳软件股份有限公司 基于多个数据库的数据查询方法及装置
CN105760511A (zh) * 2016-02-24 2016-07-13 南京信息职业技术学院 一种基于storm的大数据自适应拓扑处理方法
WO2017016130A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 消息处理方法及装置
CN106549823A (zh) * 2016-09-21 2017-03-29 南京途牛科技有限公司 一种分布式实时流计算系统
CN106874142A (zh) * 2015-12-11 2017-06-20 华为技术有限公司 一种实时数据容错处理方法及系统
CN106933549A (zh) * 2015-12-29 2017-07-07 中移(苏州)软件技术有限公司 基于流计算引擎的可定制化模块开发系统及方法
CN107169024A (zh) * 2017-04-11 2017-09-15 微梦创科网络科技(中国)有限公司 一种兼容型的业务系统及业务实现方法
CN107678852A (zh) * 2017-10-26 2018-02-09 携程旅游网络技术(上海)有限公司 基于流数据实时计算的方法、系统、设备及存储介质
CN109086390A (zh) * 2018-07-27 2018-12-25 北京中关村科金技术有限公司 一种实现数据一致性实时监控方法
CN109542643A (zh) * 2018-11-16 2019-03-29 北京金山云网络技术有限公司 一种OpenStack系统中消息的恢复方法及装置
CN110569144A (zh) * 2019-08-09 2019-12-13 苏宁金融科技(南京)有限公司 基于storm流式计算的数据处理方法和数据处理系统
CN111124625A (zh) * 2018-10-30 2020-05-08 阿里巴巴集团控股有限公司 任务队列的处理方法和装置以及存储介质
CN111400352A (zh) * 2020-03-18 2020-07-10 北京三维天地科技股份有限公司 一种可进行数据批量处理的工作流引擎
CN111752752A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种基于Spark流计算框架的消息容错方法及系统
CN115373361A (zh) * 2022-10-24 2022-11-22 江苏智云天工科技有限公司 基于工业互联网下工厂生产安全预警方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638456A (zh) * 2012-03-19 2012-08-15 杭州海康威视系统技术有限公司 基于云计算的海量实时视频码流智能分析方法及其系统
CN102880475A (zh) * 2012-10-23 2013-01-16 上海普元信息技术股份有限公司 计算机软件系统中基于云计算的实时事件处理系统及方法
CN103309903A (zh) * 2012-03-16 2013-09-18 刘龙 一种基于云计算的位置搜索系统及方法
US20130290450A1 (en) * 2012-04-30 2013-10-31 Webtrends Inc. Method and system that streams real-time, processed data from remote processor-controlled appliances

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309903A (zh) * 2012-03-16 2013-09-18 刘龙 一种基于云计算的位置搜索系统及方法
CN102638456A (zh) * 2012-03-19 2012-08-15 杭州海康威视系统技术有限公司 基于云计算的海量实时视频码流智能分析方法及其系统
US20130290450A1 (en) * 2012-04-30 2013-10-31 Webtrends Inc. Method and system that streams real-time, processed data from remote processor-controlled appliances
CN102880475A (zh) * 2012-10-23 2013-01-16 上海普元信息技术股份有限公司 计算机软件系统中基于云计算的实时事件处理系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
白亚鲁: ""云计算环境下大规模数据处理的研究"", 《软件》 *
赵建红: ""基于Twitter Storm的数据实时分析处理工具研究"", 《商情》 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224550A (zh) * 2014-06-09 2016-01-06 腾讯科技(深圳)有限公司 分布式流计算系统和方法
CN104050261A (zh) * 2014-06-16 2014-09-17 深圳先进技术研究院 基于Storm的可变逻辑的通用数据处理系统及方法
CN104050261B (zh) * 2014-06-16 2018-01-05 深圳先进技术研究院 基于Storm的可变逻辑的通用数据处理系统及方法
CN105677681A (zh) * 2014-11-21 2016-06-15 北京神州泰岳软件股份有限公司 基于多个数据库的数据查询方法及装置
CN104615777A (zh) * 2015-02-27 2015-05-13 浪潮集团有限公司 一种基于流式计算引擎的实时数据处理方法及装置
CN104639466A (zh) * 2015-03-05 2015-05-20 北京航空航天大学 一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法
CN104639466B (zh) * 2015-03-05 2018-04-10 北京航空航天大学 一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法
CN106411684A (zh) * 2015-07-30 2017-02-15 中兴通讯股份有限公司 消息处理方法及装置
CN106411684B (zh) * 2015-07-30 2020-06-16 中兴通讯股份有限公司 消息处理方法及装置
WO2017016130A1 (zh) * 2015-07-30 2017-02-02 中兴通讯股份有限公司 消息处理方法及装置
CN105141472A (zh) * 2015-08-07 2015-12-09 北京思特奇信息技术股份有限公司 一种基于异或运算的流计算跟踪方法及系统
CN105512162A (zh) * 2015-09-28 2016-04-20 杭州圆橙科技有限公司 一种基于Storm的流数据实时智能化处理框架
CN105512162B (zh) * 2015-09-28 2019-04-16 杭州圆橙科技有限公司 一种基于Storm的流数据实时智能化处理框架
CN105323151B (zh) * 2015-11-16 2018-09-14 东软集团股份有限公司 一种消息处理可靠性追踪方法及装置
CN105323151A (zh) * 2015-11-16 2016-02-10 东软集团股份有限公司 一种消息处理可靠性追踪方法及装置
CN105573840B (zh) * 2015-12-08 2019-06-14 东软集团股份有限公司 工作流运行期的事件处理方法和装置
CN105573840A (zh) * 2015-12-08 2016-05-11 东软集团股份有限公司 工作流运行期的事件处理方法和装置
CN106874142A (zh) * 2015-12-11 2017-06-20 华为技术有限公司 一种实时数据容错处理方法及系统
CN106874142B (zh) * 2015-12-11 2020-08-07 华为技术有限公司 一种实时数据容错处理方法及系统
CN105573760B (zh) * 2015-12-16 2018-11-30 南京邮电大学 基于storm的物联网数据处理系统及方法
CN105573760A (zh) * 2015-12-16 2016-05-11 南京邮电大学 基于storm的物联网数据处理系统及方法
CN106933549A (zh) * 2015-12-29 2017-07-07 中移(苏州)软件技术有限公司 基于流计算引擎的可定制化模块开发系统及方法
CN105760511A (zh) * 2016-02-24 2016-07-13 南京信息职业技术学院 一种基于storm的大数据自适应拓扑处理方法
CN106549823A (zh) * 2016-09-21 2017-03-29 南京途牛科技有限公司 一种分布式实时流计算系统
CN107169024A (zh) * 2017-04-11 2017-09-15 微梦创科网络科技(中国)有限公司 一种兼容型的业务系统及业务实现方法
CN107678852A (zh) * 2017-10-26 2018-02-09 携程旅游网络技术(上海)有限公司 基于流数据实时计算的方法、系统、设备及存储介质
CN107678852B (zh) * 2017-10-26 2021-06-22 携程旅游网络技术(上海)有限公司 基于流数据实时计算的方法、系统、设备及存储介质
CN109086390A (zh) * 2018-07-27 2018-12-25 北京中关村科金技术有限公司 一种实现数据一致性实时监控方法
CN111124625A (zh) * 2018-10-30 2020-05-08 阿里巴巴集团控股有限公司 任务队列的处理方法和装置以及存储介质
CN111124625B (zh) * 2018-10-30 2024-03-26 阿里云计算有限公司 任务队列的处理方法和装置以及存储介质
CN109542643A (zh) * 2018-11-16 2019-03-29 北京金山云网络技术有限公司 一种OpenStack系统中消息的恢复方法及装置
CN109542643B (zh) * 2018-11-16 2021-04-30 北京金山云网络技术有限公司 一种OpenStack系统中消息的恢复方法及装置
CN110569144A (zh) * 2019-08-09 2019-12-13 苏宁金融科技(南京)有限公司 基于storm流式计算的数据处理方法和数据处理系统
CN111400352A (zh) * 2020-03-18 2020-07-10 北京三维天地科技股份有限公司 一种可进行数据批量处理的工作流引擎
CN111400352B (zh) * 2020-03-18 2020-11-17 北京三维天地科技股份有限公司 一种可进行数据批量处理的工作流引擎
CN111752752A (zh) * 2020-05-28 2020-10-09 苏州浪潮智能科技有限公司 一种基于Spark流计算框架的消息容错方法及系统
CN115373361A (zh) * 2022-10-24 2022-11-22 江苏智云天工科技有限公司 基于工业互联网下工厂生产安全预警方法及系统

Also Published As

Publication number Publication date
CN103699599B (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
CN103699599A (zh) 一种基于Storm实时流计算框架的消息可靠处理保障方法
US10255141B2 (en) Event batching, output sequencing, and log based state storage in continuous query processing
US20210406068A1 (en) Method and system for stream computation based on directed acyclic graph (dag) interaction
US9589069B2 (en) Platform for continuous graph update and computation
CN110516971B (zh) 异常检测的方法、装置、介质和计算设备
KR102006513B1 (ko) 공유 볼륨의 어플리케이션 일관된 스냅샷 기법
US8473783B2 (en) Fault tolerance in distributed systems
Grover et al. Data Ingestion in AsterixDB.
US10437689B2 (en) Error handling for services requiring guaranteed ordering of asynchronous operations in a distributed environment
CN111314125A (zh) 用于容错通信的系统和方法
US20130290945A1 (en) System and method for performing an in-service software upgrade in non-redundant systems
US10983815B1 (en) System and method for implementing a generic parser module
CN107678852B (zh) 基于流数据实时计算的方法、系统、设备及存储介质
CN111930489B (zh) 一种任务调度方法、装置、设备及存储介质
CN105446909A (zh) 用于缓存管理的方法和系统
EP2715526B1 (en) Episodic coordination model for distributed applications
TWI604320B (zh) 巨量資料存取方法以及使用該方法的系統
Yan et al. Lightweight fault tolerance in pregel-like systems
US10691353B1 (en) Checking of data difference for writes performed via a bus interface to a dual-server storage controller
US20220365851A1 (en) Rollback recovery with data lineage capture for data pipelines
US20210303162A1 (en) Method, electronic device, and computer program product for recovering data
US8060780B2 (en) Transient transaction execution with on-demand persistency
CN111628924A (zh) 电子邮件的发送方法、系统、存储介质以及电子设备
CN111373377A (zh) 错误处理
CN110764933B (zh) 一种消息处理方法、装置、系统及计算设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant