WO2015101026A1 - 分布式流处理系统的容错方法、节点及系统 - Google Patents

分布式流处理系统的容错方法、节点及系统 Download PDF

Info

Publication number
WO2015101026A1
WO2015101026A1 PCT/CN2014/082991 CN2014082991W WO2015101026A1 WO 2015101026 A1 WO2015101026 A1 WO 2015101026A1 CN 2014082991 W CN2014082991 W CN 2014082991W WO 2015101026 A1 WO2015101026 A1 WO 2015101026A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
stored
group identification
packet
Prior art date
Application number
PCT/CN2014/082991
Other languages
English (en)
French (fr)
Inventor
潘璐伽
何诚
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP14876066.3A priority Critical patent/EP2945314B1/en
Publication of WO2015101026A1 publication Critical patent/WO2015101026A1/zh
Priority to US15/044,077 priority patent/US10205630B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式流处理系统的容错方法、节点及系统,属于计算机技术领域。该方法包括:获取失效节点的节点信息,并接收上游节点发送的重发数据,重发数据由源节点始发;根据失效节点的节点信息确定是否与失效节点相关;如果与失效节点相关,则处理接收到的重发数据,并将处理后的重发数据发送至下游节点。本发明通过接收上游节点发送的重发数据,并在确定与失效节点相关后,处理接收到的重发数据,使得在与失效节点相关时才处理上游节点发送的重发数据,不仅不影响其它节点的数据处理效率,而且不需要在本地存储大量备份数据,从而节省了本地资源。另外,由于不需要与上游或下游其它节点频繁交互,因而提高了数据处理的效率。

Description

说 明 书 分布式流处理系统的容错方法、 节点及系统 本申请要求于 2013 年 12 月 31 日提交中国专利局、 申请号为 201310754620.X, 发明名称为 "分布式流处理系统的容错方法、 节点及系统" 的中国专利申请的优先权, 这个专利的全部内容通过引用结合在本申请中。 技术领域
本发明涉及计算机技术领域, 特别涉及一种分布式流处理系统的容错方 法、 节点及系统。 背景技术
随着分布式计算技术在各个应用领域的不断扩展, 分布式流处理系统被广 泛应用在众多领域, 例如, 金融管理、 网络监视、 通讯数据管理、 WEB (网页) 应用、 传感器网络数据处理等。 分布式流处理系统是指釆用分布式系统处理数 据流业务的互联网软件系统, 而分布式流处理系统的容错是指在系统内部出现 故障的情况下, 仍然能够向外部环境提供正确服务的能力。 分布式流处理系统 的容错方法是增强系统可靠性和可用性的主要手段, 在系统内的部分工作节点 发生失效时, 系统能自动从失效中恢复过来, 并且不会对分布式系统整个应用 系统的正常运行产生严重影响。
现有技术中, 应用于分布式流处理系统的容错方法通常有如下几种: ( 1 )分布式流处理系统釆用集中式数据备份, 具体为: 在源节点备份数 据, 当系统的流处理网络重新建好后, 源节点对失效前的一段数据进行重发, 系统中的每个工作节点重新接收并处理源节点或上游各个工作节点重新发送 的数据。 (2 )分布式流处理系统釆用分布式数据备份, 具体为: 系统中的每个 工作节点均备份前一段时间处理过的数据, 当系统的流处理网络重新建好后, 系统中的各个工作节点将备份的数据重新发送至下游的各个工作节点, 下游的 各个工作节点重新接收并处理上游各个工作节点重新发送的数据, 并在成功接 收上游工作节点重新发送的数据后, 向上游工作节点发送数据处理完成消息。 当上游工作节点收到下游工作节点的数据处理完成消息后, 上游工作节点将备 份的数据删除。
在实现本发明的过程中, 发明人发现现有技术至少存在以下问题: 针对上述第 (1 )种方法, 当系统的流处理网络重新建好后, 系统需要进 行整网回退, 由源节点重新发送数据, 其它每个工作节点重新接收并处理源节 点或上游工作节点重新发送的数据, 导致整网的数据处理效率被拖低, 影响数 据处理效率的同时, 浪费节点资源。 针对上述第 (2 )种方法, 每个工作节点 均需要备份处理过的数据, 存储开销大。 另外, 由于上游工作节点和下游工作 节点需要进行频繁交互, 导致数据处理效率低。 发明内容
为了解决现有技术的问题, 本发明实施例提供了一种分布式流处理系统的 容错方法、 节点及系统。 所述技术方案如下:
第一方面, 提供了一种分布式流处理系统的容错方法, 所述方法包括: 获取分布式流处理系统中的失效节点的节点信息, 并接收上游节点发送的 重发数据, 所述重发数据由源节点始发, 所述上游节点为所述源节点或上游工 作节点;
根据所述失效节点的节点信息确定是否与所述失效节点相关;
如果与所述失效节点相关, 则处理接收到的重发数据, 并将处理后的重发 数据发送至下游节点。
结合第一方面, 在第一方面的第一种可能的实现方式中, 所述获取所述分 布式流处理系统中失效节点的节点信息, 包括:
接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监 控所述分布式流处理系统中的各个节点的工作状况。
结合第一方面, 在第一方面的第二种可能的实现方式中, 所述根据所述失 效节点的节点信息确定是否与所述失效节点相关, 包括:
根据所述失效节点的节点信息查询预先存储的节点关联表, 所述节点关联 表中记录了所述分布式流处理系统中的各个节点的节点信息及对应的相关度; 根据查询结果确定是否与所述失效节点相关。
结合第一方面, 在第一方面的第三种可能的实现方式中, 所述处理接收到 的重发数据, 包括:
获取预先存储的状态信息, 所述预先存储的状态信息至少包括当前的节点 状态信息及后续处理数据所需的数据结果信息;
根据所述预先存储的状态信息处理接收到的重发数据。
结合第一方面的第三种可能的实现方式, 在第一方面的第四种可能的实现 方式中, 所述根据所述预先存储的状态信息处理接收到的重发数据之后, 还包 括:
接收所述上游节点发送的信号包, 所述信号包中携带有分组标识, 所述分 组标识为源节点对流入的数据进行分组编号后添加到所述信号包中的;
根据当前接收到的信号包中携带的分组标识确定是否需要存储状态信息; 如果需要存储状态信息, 则根据所述重发数据的处理结果存储状态信息。 结合第一方面的第四种可能的实现方式, 在第一方面的第五种可能的实现 方式中, 所述根据当前接收到的信号包中携带的分组标识确定是否需要存储状 态信息, 包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 对应的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 对应的预设分组标识不一致, 则确定需要存储状态信息。
结合第一方面的第三种可能的实现方式, 在第一方面的第六种可能的实现 方式中, 所述上游节点发送的重发数据中携带有对应的分组标识, 所述分组标 识为源节点对所述重发数据进行分组编号后添加到所述重发数据中的;
所述根据所述预先存储的状态信息处理接收到的重发数据之后, 还包括: 根据所述重发数据中携带的分组标识确定是否需要存储状态信息; 如果需要存储状态信息, 则根据所述重发数据的处理结果存储状态信息。 结合第一方面的第六种可能的实现方式, 在第一方面的第七种可能的实现 方式中, 所述根据所述重发数据中携带的分组标识确定是否需要存储状态信 息, 包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述重发数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识是否一致;
如果所述重发数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识不一致, 则确定需要存储状态信息。
结合第一方面, 在第一方面的第八种可能的实现方式中, 所述根据所述失 效节点的节点信息确定是否与所述失效节点相关之后, 还包括:
如果与所述失效节点不相关, 则对接收到的重发数据不做处理。
结合第一方面的第八种可能的实现方式, 在第一方面的第九种可能的实现 方式中, 所述对接收到的重发数据不做处理之后, 还包括:
接收所述上游节点发送的其它数据, 所述其它数据中携带有对应的分组标 识, 所述分组标识为源节点对所述其它数据进行分组编号后添加到所述其它数 据中的;
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述其它数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识是否一致;
如果所述其它数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识不一致, 则对所述其它数据进行处理。
结合第一方面的第九种可能的实现方式, 在第一方面的第十种可能的实现 方式中, 所述对所述其它数据进行处理之后, 还包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述其它数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识是否一致;
如果所述其它数据中携带的分组标识与所述预先存储的分组标识对应的 预设分组标识不一致, 则确定需要存储状态信息, 并根据所述其它数据的处理 结果存储状态信息。
结合第一方面的第八种可能的实现方式, 在第一方面的第十一种可能的实 现方式中, 所述对接收到的重发数据不做处理之后, 还包括:
接收所述上游节点发送的信号包, 所述信号包中携带有分组标识, 所述分 组标识为源节点对流入的数据进行分组编号后添加到所述信号包中的;
获取预先存储的分组标识, 所述预先存储的分组标识为之前接收到的信号 包中携带的分组标识;
判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 是否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 一致, 则对所述上游节点发送的后续其它数据进行处理。
结合第一方面的第十一种可能的实现方式, 在第一方面的第十二种可能的 实现方式中,所述对所述上游节点发送的后续其它数据进行处理之后,还包括: 获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 对应的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识 对应的预设分组标识不一致, 则确定需要存储状态信息, 并根据接收当前接收 的信号包之前接收的其它数据的处理结果存储状态信息。
第二方面, 提供了一种分布式流处理系统的容错方法, 所述方法包括: 获取分布式流处理系统中的失效节点的节点信息;
根据所述失效节点的节点信息获取緩存的数据, 并将緩存的数据作为重发 数据发送至下游节点, 由所述下游节点根据所述下游节点与所述失效节点是否 相关来确定是否处理所述重发数据。
结合第二方面, 在第二方面的第一种可能的实现方式中, 所述获取分布式 流处理系统中的失效节点的节点信息, 包括:
接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监 控所述分布式流处理系统中的各个节点的工作状况。
结合第二方面, 在第二方面的第二种可能的实现方式中, 所述将緩存的数 据作为重发数据发送至下游节点之后, 还包括:
将所述重发数据对应的分组标识添加到信号包中, 将携带有分组标识的信 号包发送至下游节点。
结合第二方面, 在第二方面的第三种可能的实现方式中, 所述将緩存的数 据作为重发数据发送至下游节点, 包括:
将緩存的数据作为重发数据, 并将所述重发数据对应的分组标识添加到所 述重发数据中, 将携带有分组标识的重发数据发送至下游节点。
结合第二方面的第二种或第三种可能的实现方式, 在第二方面的第四种可 能的实现方式中, 所述将緩存的数据作为重发数据发送至下游节点之前, 还包 括: 根据接收数据的时间间隔或数据大小对接收到的数据进行分组编号,得到 每个数据对应的分组标识。
第三方面, 提供了一种工作节点, 所述工作节点包括:
第一获取模块, 用于获取分布式流处理系统中的失效节点的节点信息; 第一接收模块, 用于接收上游节点发送的重发数据, 所述重发数据由源节 点始发, 所述上游节点为源节点或上游工作节点;
第一确定模块, 用于根据所述失效节点的节点信息确定是否与所述失效节 点相关;
第一处理模块, 用于当与所述失效节点相关时, 处理接收到的重发数据, 并将处理后的重发数据发送至下游节点。
结合第三方面, 在第三方面的第一种可能的实现方式中, 所述第一获取模 块, 用于接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用 于监控所述分布式流处理系统中的各个节点的工作状况。
结合第三方面, 在第三方面的第二种可能的实现方式中, 所述第一确定模 块, 包括:
查询单元, 用于根据所述失效节点的节点信息查询预先存储的节点关联 表, 所述节点关联表中记录了所述分布式流处理系统中的各个节点的节点信息 及对应的相关度;
确定单元, 用于根据查询结果确定是否与所述失效节点相关。
结合第三方面, 在第三方面的第三种可能的实现方式中, 所述第一处理模 块, 包括:
获取单元, 用于获取预先存储的状态信息, 所述预先存储的状态信息至少 包括当前的节点状态信息及后续处理数据所需的数据结果信息;
处理单元, 用于根据所述预先存储的状态信息处理接收到的重发数据。 结合第三方面的第三种可能的实现方式, 在第三方面的第四种可能的实现 方式中, 所述工作节点, 还包括: 第二接收模块, 用于接收所述上游节点发送的信号包, 所述信号包中携带 有分组标识, 所述分组标识为源节点对流入的数据进行分组编号后添加到所述 信号包中的;
第二确定模块, 用于根据当前接收到的信号包中携带的分组标识确定是否 需要存储状态信息;
第一存储模块, 用于当需要存储状态信息时, 根据所述重发数据的处理结 果存储状态信息。
结合第三方面的第四种可能的实现方式, 在第三方面的第五种可能的实现 方式中, 所述第二确定模块, 包括:
获取单元, 用于获取预先存储的分组标识;
第一确定单元, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识;
判断单元, 用于判断当前接收到的信号包中携带的分组标识与所述预先存 储的分组标识对应的预设分组标识是否一致;
第二确定单元, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
结合第三方面的第三种可能的实现方式, 在第三方面的第六种可能的实现 方式中, 所述工作节点, 还包括:
第三确定模块, 用于当上游节点发送的重发数据中携带有对应的分组标识 时, 根据所述重发数据中携带的分组标识确定是否需要存储状态信息, 所述分 组标识为源节点对所述重发数据进行分组编号后添加到所述重发数据中的; 第二存储模块, 用于当需要存储状态信息时, 根据所述重发数据的处理结 果存储状态信息。
结合第三方面的第六种可能的实现方式, 在第三方面的第七种可能的实现 方式中, 所述第三确定模块, 包括:
获取单元, 用于获取预先存储的分组标识; 第一确定单元, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识;
判断单元, 用于判断所述重发数据中携带的分组标识与所述预先存储的分 组标识对应的预设分组标识是否一致;
第二确定单元, 用于当所述重发数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
结合第三方面, 在第三方面的第八种可能的实现方式中, 所述工作节点, 还包括:
第四确定模块, 用于当确定与所述失效节点不相关时, 对接收到的重发数 据不做处理。
结合第三方面的第八种可能的实现方式, 在第三方面的第九种可能的实现 方式中, 所述工作节点, 还包括:
第三接收模块, 用于接收所述上游节点发送的其它数据, 所述其它数据中 携带有对应的分组标识, 所述分组标识为源节点对所述其它数据进行分组编号 后添加到所述其它数据中的;
第二获取模块, 用于获取预先存储的分组标识;
第五确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识;
第一判断模块, 用于判断所述其它数据中携带的分组标识与所述预先存储 的分组标识对应的预设分组标识是否一致;
第二处理模块, 用于当所述其它数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 对所述其它数据进行处理。
结合第三方面的第九种可能的实现方式, 在第三方面的第十种可能的实现 方式中, 所述工作节点, 还包括:
第三获取模块, 用于获取预先存储的分组标识;
第六确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 第二判断模块, 用于判断所述其它数据中携带的分组标识与所述预先存储 的分组标识对应的预设分组标识是否一致;
第七确定模块, 用于当所述其它数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 确定需要存储状态信息;
第三存储模块, 用于根据所述其它数据的处理结果存储状态信息。
结合第三方面的第八种可能的实现方式, 在第三方面的第十一种可能的实 现方式中, 所述工作节点, 还包括:
第四接收模块, 用于接收所述上游节点发送的信号包, 所述信号包中携带 有分组标识, 所述分组标识为源节点对流入的数据进行分组编号后添加到所述 信号包中的;
第四获取模块, 用于获取预先存储的分组标识, 所述预先存储的分组标识 为之前接收到的信号包中携带的分组标识;
第三判断模块, 用于判断当前接收到的信号包中携带的分组标识与所述预 先存储的分组标识是否一致;
第三处理模块, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识一致时, 对所述上游节点发送的后续其它数据进行处理。
结合第三方面的第十一种可能的实现方式, 在第三方面的第十二种可能的 实现方式中, 所述工作节点, 还包括:
第五获取模块, 用于获取预先存储的分组标识;
第八确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识;
第四判断模块, 用于判断当前接收到的信号包中携带的分组标识与所述预 先存储的分组标识对应的预设分组标识是否一致;
第九确定模块, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息; 第四存储模块, 用于根据接收当前接收的信号包之前接收的其它数据的处 理结果存储状态信息。
第四方面, 提供了一种源节点, 所述源节点包括:
第一获取模块, 用于获取分布式流处理系统中的失效节点的节点信息; 第二获取模块, 用于根据所述失效节点的节点信息获取緩存的数据; 发送模块, 用于将緩存的数据作为重发数据发送至下游节点, 由所述下游 节点根据所述下游节点与所述失效节点是否相关来确定是否处理所述重发数 据。
结合第四方面, 在第四方面的第一种可能的实现方式中, 所述第一获取模 块用于接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于 监控所述分布式流处理系统中的各个节点的工作状况。
结合第四方面, 在第四方面的第二种可能的实现方式中, 所述发送模块, 包括:
第一添加单元, 用于将所述重发数据对应的分组标识添加到信号包中; 第一发送单元, 用于将携带有分组标识的信号包发送至下游节点。
结合第四方面, 在第四方面的第三种可能的实现方式中, 所述发送模块, 包括:
第二添加单元, 用于将緩存的数据作为重发数据, 并将所述重发数据对应 的分组标识添加到所述重发数据中;
第二发送单元, 用于将携带有分组标识的重发数据发送至下游节点。 结合第四方面的第二种或第三种可能的实现方式, 在第四方面的第四种可 能的实现方式中, 所述源节点, 还包括:
分组编号模块, 用于根据接收数据的时间间隔或数据大小对接收到的数据 进行分组编号, 得到每个数据对应的分组标识。
第五方面, 提供了一种分布式流处理系统的容错系统, 所述系统包括: 源 节点和多个工作节点; 其中, 所述工作节点如上述第三方面提供的节点; 所述源节点如上述第四 方面提供的源节点。
本发明实施例提供的技术方案带来的有益效果是:
通过接收上游节点发送的重发数据, 并在确定与失效节点相关后, 处理接 收到的重发数据, 使得在与失效节点相关时才处理上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或下游其它节点频繁交互, 因 而提高了数据处理的效率。 附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中所 需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明一实施例提供的一种分布式流处理系统的容错方法的实施环 境示意图;
图 2是本发明另一实施例提供的一种分布式流处理系统的容错系统结构示 意图;
图 3是本发明另一实施例提供的一种分布式流处理系统的流处理网络拓朴 路由表的结构示意图;
图 4是本发明另一实施例提供的一种分布式流处理系统的容错方法的方法 流程图;
图 5是本发明另一实施例提供的一种分布式流处理系统的容错方法的流程 图;
图 6是本发明另一实施例提供的一种分布式流处理系统的容错方法的流程 图; 图 Ί是本发明另一实施例提供的一种分布式流处理系统的容错方法的流程 图;
图 8是本发明另一实施例提供的一种工作节点的结构示意图;
图 9是本发明另一实施例提供的一种源节点的结构示意图;
图 10是本发明另一实施例提供的一种分布式流处理系统的容错系统的结 构示意图;
图 11是本发明另一实施例提供的一种工作节点的结构示意图;
图 12是本发明另一实施例提供的一种源节点的结构示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明 实施方式作进一步地详细描述。
如图 1所示, 其示出了本发明实施例提供的分布式流处理系统的容错方法 所涉及的实施环境结构示意图。 该实施环境为一个分布式流处理系统, 包括源 节点和多个工作节点。 具体地, 如图 2所示, 为了保证分布式流处理系统的正 常工作, 图 1所示的实施环境示意图示出的分布式流处理系统配置有收集流应 用路由信息模块 201、 节点管理模块 202和存储模块 203。
其中, 收集流应用路由信息模块 201包括集中管理实体, 集中管理实体用 于监控该分布式流处理系统中的各个工作节点以及源节点的工作状况。 由于分 布式流处理系统加载应用的时候会涉及到分配相应的工作节点及工作节点之 间的链路关系, 因此, 集中管理实体存储了该分布式流处理系统对应的流处理 网络拓朴路由表。 如图 3所示, 其示出了一种流处理网络拓朴路由表的结构意 图, 该分布式流处理系统中的各个工作节点根据该流处理网络拓朴路由表接收 并处理由源节点流入的数据。
此外, 集中管理实体还存储了备份节点表, 该备份节点表存储了系统中的 各个工作节点的备份节点。 当分布式流处理系统中的某个工作节点失效后, 集 中管理实体可以控制备份节点顶替失效节点,保证该分布式流处理系统可以快 速恢复处理网络。 其中, 备份节点可以由集中管理实体初始化, 后续可以根据 系统的负载均衡策略和调度策略进行动态调整。
结合图 1, 节点管理模块 202用于管理图 1所示的分布式流处理系统中的 源节点和各个工作节点。其中,源节点为分布式流处理系统中数据流入的节点, 工作节点为该分布式流处理系统中除源节点之外的其它所有节点。 其中, 本发 明实施例中, 在图 1所示的分布式流处理系统中, 由源节点统一备份处理过的 数据, 各个工作节点以及源节点实时保存自己的状态信息。
本发明实施例中, 在分布式流处理系统正常运行的过程中, 源节点对流入 的数据进行分组标识, 并按照时间间隔、 数据块大小等条件周期性备份, 然后 将分组标识后的数据发送到下游节点。各个工作节点接收源节点或上游的工作 节点发送的数据, 并根据数据的标识信息周期性地存储状态信息, 该状态信息 至少包括当前的节点状态信息和后续处理数据需要用到的数据结果信息。 当该 分布式流处理系统中的某一工作节点失效后, 源节点将緩存的已经备份的数据 作为重发数据, 并向下游节点发送重发数据, 和失效节点相关的工作节点重新 处理所涉及的数据。 另外, 为了使集中管理实体可以实时监控系统中的各个工 作节点以及源节点的工作状况,各个工作节点以及源节点定时向集中管理实体 上报心跳信息, 告知集中管理实体其工作状况。
存储模块 203用于存储所有和容错相关的信息, 包括流处理网络拓朴路由 表, 备份节点表, 各个工作节点及源节点的状态信息等。 其中, 存储模块 203 包括但不限于通过两种形式实现: 第一种是单点存储实体, 即所有和容错相关 的信息集中存储在某个节点; 第二种是分布式存储实体, 该存储方式是一种共 享式的、 多个节点协作式的存储方式。 此外, 本发明实施例不对存储模块 203 涉及的存储介质进行限定, 存储介质可以是硬盘, 也可以是内存等。 结合图 1所示的实施环境示意图, 图 2所示的分布式流处理系统的容错系 统结构示意图以及上述内容, 本发明实施例提供了一种分布式流处理系统的容 错方法。 以分布式流处理系统中的除源节点之外的某个工作节点执行本发明实 施例提供的分布式流处理系统的容错方法的角度为例, 参见图 4, 本发明实施 例提供的方法流程包括:
401 : 获取分布式流处理系统中的失效节点的节点信息, 并接收上游节点 发送的重发数据, 其中, 重发数据由源节点始发, 上游节点为源节点或上游工 作节点;
402: 根据失效节点的节点信息确定是否与失效节点相关;
403: 如果与失效节点相关, 则处理接收到的重发数据, 并将处理后的重 发数据发送至下游节点。
可选地, 获取分布式流处理系统中失效节点的节点信息, 包括: 接收集中管理实体发送的失效节点的节点信息, 其中, 集中管理实体用于 监控分布式流处理系统中的各个节点的工作状况。
可选地, 根据失效节点的节点信息确定是否与失效节点相关, 包括: 根据失效节点的节点信息查询预先存储的节点关联表, 其中, 节点关联表 中记录了分布式流处理系统中的各个节点的节点信息及对应的相关度;
根据查询结果确定是否与失效节点相关。
可选地, 处理接收到的重发数据, 包括:
获取预先存储的状态信息, 其中, 预先存储的状态信息至少包括当前的节 点状态信息及后续处理数据所需的数据结果信息;
根据预先存储的状态信息处理接收到的重发数据。
可选地, 根据预先存储的状态信息处理接收到的重发数据之后, 还包括: 接收上游节点发送的信号包, 其中, 信号包中携带有分组标识, 分组标识 为源节点对流入的数据进行分组编号后添加到信号包中的;
根据当前接收到的信号包中携带的分组标识确定是否需要存储状态信息; 如果需要存储状态信息, 则根据重发数据的处理结果存储状态信息。 可选地,根据当前接收到的信号包中携带的分组标识确定是否需要存储状 态信息, 包括:
获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与预先存储的分组标识对应 的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与预先存储的分组标识对应 的预设分组标识不一致, 则确定需要存储状态信息。
可选地, 上游节点发送的重发数据中携带有对应的分组标识, 其中, 分组 标识为源节点对重发数据进行分组编号后添加到重发数据中的;
根据预先存储的状态信息处理接收到的重发数据之后, 还包括:
根据重发数据中携带的分组标识确定是否需要存储状态信息;
如果需要存储状态信息, 则根据重发数据的处理结果存储状态信息。
可选地, 根据重发数据中携带的分组标识确定是否需要存储状态信息, 包 括:
获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识;
判断重发数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识是否一致;
如果重发数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识不一致, 则确定需要存储状态信息。
可选地,根据失效节点的节点信息确定是否与失效节点相关之后,还包括: 如果与失效节点不相关, 则对接收到的重发数据不做处理。
可选地, 对接收到的重发数据不做处理之后, 还包括:
接收上游节点发送的其它数据,其中,其它数据中携带有对应的分组标识, 分组标识为源节点对其它数据进行分组编号后添加到其它数据中的; 获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断其它数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识是否一致;
如果其它数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识不一致, 则对其它数据进行处理。
可选地, 对其它数据进行处理之后, 还包括:
获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断其它数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识是否一致;
如果其它数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识不一致, 则确定需要存储状态信息, 并根据其它数据的处理结果存储状态 信息。
可选地, 对接收到的重发数据不做处理之后, 还包括:
接收上游节点发送的信号包, 其中, 信号包中携带有分组标识, 分组标识 为源节点对流入的数据进行分组编号后添加到信号包中的;
获取预先存储的分组标识, 其中, 预先存储的分组标识为之前接收到的信 号包中携带的分组标识;
判断当前接收到的信号包中携带的分组标识与预先存储的分组标识是否 一致;
如果当前接收到的信号包中携带的分组标识与预先存储的分组标识一致, 则对上游节点发送的后续其它数据进行处理。
可选地, 对上游节点发送的后续其它数据进行处理之后, 还包括: 获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与预先存储的分组标识对应 的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与预先存储的分组标识对应 的预设分组标识不一致, 则确定需要存储状态信息, 并根据接收当前接收的信 号包之前接收的其它数据的处理结果存储状态信息。
本发明实施例提供的方法, 通过接收上游节点发送的重发数据, 并在确定 与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处理 上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要 在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或 下游其它节点频繁交互, 因而提高了数据处理的效率。 结合图 1所示的实施环境示意图, 图 2所示的分布式流处理系统的容错系 统结构示意图以及上述图 4所示实施例, 本发明实施例提供了一种分布式流处 理系统的容错方法。 以分布式流处理系统中的源节点执行本发明实施例提供的 分布式流处理系统的容错方法的角度为例, 参见图 5, 本发明实施例提供的方 法流程包括:
501: 获取分布式流处理系统中的失效节点的节点信息;
502: 根据失效节点的节点信息获取緩存的数据, 并将緩存的数据作为重 发数据发送至下游节点, 由下游节点根据下游节点与失效节点是否相关来确定 是否处理重发数据。
可选地, 获取分布式流处理系统中的失效节点的节点信息, 包括: 接收集中管理实体发送的失效节点的节点信息, 其中, 集中管理实体用于 监控分布式流处理系统中的各个节点的工作状况。
可选地, 将緩存的数据作为重发数据发送至下游节点之后, 还包括: 将重发数据对应的分组标识添加到信号包中,将携带有分组标识的信号包 发送至下游节点。 可选地, 将緩存的数据作为重发数据发送至下游节点, 包括: 将緩存的数据作为重发数据, 并将重发数据对应的分组标识添加到重发数 据中, 将携带有分组标识的重发数据发送至下游节点。
可选地, 将緩存的数据作为重发数据发送至下游节点之前, 还包括: 根据接收数据的时间间隔或数据大小对接收到的数据进行分组编号,得到 每个数据对应的分组标识。
本发明实施例提供的方法, 通过接收上游节点发送的重发数据, 并在确定 与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处理 上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要 在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或 下游其它节点频繁交互, 因而提高了数据处理的效率。 结合图 1所示的实施环境结构示意图、 图 2所示的分布式流处理系统的结 构示意图和图 4或图 5所示实施例的内容, 本发明实施例提供了一种分布式流 处理系统的容错方法。 为了便于说明, 本发明实施例以分布式流处理系统中的 一个工作节点失效后, 源节点在发送重发数据时, 将重发数据对应的分组标识 添加到信号包中发送给下游节点, 使得下游节点在接收信号包后, 根据信号包 中携带的分组标识进行状态信息存储为例, 对本发明实施例提供的方法进行详 细地解释说明。 参见图 6, 本发明实施例提供的方法流程包括:
601 : 源节点和工作节点获取分布式流处理系统中的失效节点的节点信息。 其中, 源节点和工作节点获取分布式流处理系统中的失效节点的节点信息 的方式, 可以有多种。 由于该分布式流处理系统中的集中管理实体可以监控该 分布式流处理系统中各个节点的工作状况,且各个节点需要定时向集中管理实 体上报心跳信息。 因此, 集中管理实体可以根据各个节点上报的心跳信息实时 获取该分布式流处理系统中的失效节点的节点信息, 并且可以在获取到失效节 点的节点信息后, 将该失效节点的节点信息广播给该分布式流处理系统中的源 节点和各个工作节点。 因此, 源节点和工作节点可以通过接收集中管理实体广 播的失效节点的节点信息来获取分布式流处理系统中的失效节点的节点信息。 当然, 源节点和工作节点也可以通过其它方式来获取分布式流处理系统中的失 效节点的节点信息, 本发明实施例对此不作具体限定。
602: 源节点根据失效节点的节点信息获取緩存的数据, 并将緩存的数据 作为重发数据发送至下游节点。
在分布式流处理系统中, 当某一节点失效后, 该分布式流处理系统可以釆 取一些措施使系统恢复正常工作, 从而不影响系统进行正常地数据处理。 为了 保证从失效节点失效到系统恢复正常的这段时间内, 各个工作节点不会因漏处 理数据而使数据处理过程出现错误。 因此, 当系统恢复正常工作后, 源节点需 要根据失效节点的节点信息获取緩存的数据, 并将緩存的数据作为重发数据发 送至下游节点。本发明实施例对源节点根据失效节点的节点信息获取緩存的数 据的方式, 以及将緩存的数据作为重发数据发送至下游节点的方式不作具体限 定。
其中, 分布式流处理系统可以釆取很多措施来使该系统恢复正常工作, 例 如, 可以由系统中的集中管理实体控制失效节点的备份节点取代失效节点来继 续处理数据; 也可以将失效节点的功能迁移到其它工作节点, 并在系统的流处 理网络拓朴路由表刷新后开始继续处理数据; 还可以是在失效节点重新启动之 后继续处理数据。
可选地, 为了在发送重发数据时, 便于对重发数据进行管理, 以及为了使 下游节点后续可以根据源节点发送的重发数据中的分组情况存储状态信息, 源 节点在将緩存的数据作为重发数据发送至下游节点之前, 还包括: 根据接收数 据的时间间隔或数据大小对接收到的数据进行分组编号,得到每个数据对应的 分组标识。 其中, 该接收到的数据为流入源节点的每个数据。 因此, 为了使下 游节点能够很好地区分接收的重发数据来自于源节点发送的重发数据中的哪 个分组, 源节点将緩存的数据作为重发数据发送至下游节点之后, 还包括: 将 重发数据对应的分组标识添加到信号包中,将携带有分组标识的信号包发送至 下游节点。 具体地, 源节点在每发完一组重发数据之后, 继续向下游节点发送 一个携带该组重发数据的分组标识的信号包。 因此, 当下游节点接收到该信号 包后, 即可根据该信号包中携带的分组标识获得上一段时间接收的重发数据的 分组标识。 另外, 在将緩存的数据作为重发数据发送至下游节点之前, 为了使 下游节点明确将要接收第几组重发数据, 源节点可以先发一个携带将要发送的 重发数据的上一组数据的分组标识的信号包。 其中, 本发明实施例对源节点将 重发数据对应的分组标识添加到信号包中的方式, 以及将携带有分组标识的信 号包发送至下游节点的方式不作具体限定。
关于源节点根据接收数据的时间间隔或数据大小对接收到的数据进行分 组编号的具体实现方法, 本发明实施例不作具体限定。 具体实施时, 当源节点 根据时间间隔来为接收到的数据进行分组编号时, 可以设置一个固定时间间 隔, 并将每个固定时间间隔内接收到的数据分为一组。 例如, 源节点可以设置 lOmin (分钟) 为一个固定时间间隔。 在接收数据时, 将前 lOmin接收到的数 据分为第一组, 将 lOmin至 20min接收到的数据分为第二组, 等等。 当源节点 根据数据大小来为接收到的数据进行分组编号时, 可以在接收数据之前, 设置 每组数据包含的数据的大小, 例如, 可以设置每组数据包含 10个数据。 因此, 在接收数据时, 可以对接收到的每个数据进行编号, 并将编号为 1-10 的数据 分为第一组,以此类推。例如,可以将接收到的前 100个数据分别编号为 1-100, 然后将编号为 1-10的数据分为第一组, 将编号为 11-20的数据分为第二组, 等 等。 当然, 源节点还可以釆用其它方法对接收到的数据进行分组编号, 本发明 实施例对此不作具体限定。
603: 工作节点接收上游节点发送的重发数据。
当源节点发送重发数据后, 工作节点接收上游节点发送的重发数据。 关于 工作节点接收上游节点发送的重发数据的方式, 本发明实施例不作具体限定。 另外, 当源节点在发送重发数据时, 对发送的重发数据进行分组标识, 并在发 完每组重发数据之后, 发送了携带该组重发数据的分组标识的信号包, 则工作 节点在接收源节点发送的重发数据之后, 也将接收源节点发送的信号包。
需要说明的是, 如果该工作节点为源节点之下的第一级节点, 则该工作节 点的上游节点即为源节点; 如果该工作节点为源节点之下的第二级节点或第二 级以后的其它级节点, 则该上游节点为该流处理网络拓朴路由表中该工作节点 的上一级工作节点。 以图 3所示的流处理网络拓朴路由表为例, 如果工作节点 为节点 2, 则工作节点的上游节点为源节点; 如果工作节点为节点 3, 则工作 节点的上游节点为节点 2。
604: 工作节点根据失效节点的节点信息确定是否与失效节点相关, 如果 与失效节点相关, 则执行步骤 605; 如果与失效节点不相关, 则执行步骤 607。
由于本发明实施例提供的方法支持当该分布式流处理系统中出现失效节 点后, 与失效节点相关的工作节点需要重新处理源节点发送的重发数据, 而与 失效节点不相关的工作节点则不需要处理源节点发送的重发数据。 因此, 工作 节点接收上游节点发送的重发数据后, 需要根据失效节点的节点信息确定是否 与失效节点相关。 具体地, 在分布式流处理系统中, 当失效节点为工作节点的 一级或多级下游节点时, 则工作节点确定与失效节点相关, 否则, 工作节点确 定与失效节点不相关。
其中, 工作节点根据失效节点的节点信息确定是否与失效节点相关的方式 可以有很多种, 具体实施时, 包括但不限于釆用如下方式:
工作节点根据失效节点的节点信息查询预先存储的节点关联表,根据查询 结果确定是否与失效节点相关。 其中, 节点关联表中记录了工作节点与分布式 流处理系统中的其它各个节点的节点信息及对应的相关度。 为了便于对节点关 联表进行解释说明, 可以结合图 3所示的流处理网络拓朴路由表进行说明。 在 图 3中, 编号为 1的节点为源节点, 节点 2-6为其它工作节点。 如表一所示, 其示出了一种根据图 3所示的流处理网络拓朴路由表获得的工作节点 2与该分 布式流处理系统中的其它各个节点的节点关联表。 在表一中, 相关度为 0表示 节点编号对应的节点与工作节点 2不相关,相关度为 1表示节点编号对应的工 作节点和工作节点 2相关, N/A表示节点编号对应的节点与工作节点 2无拓朴 关系, 流编号表示节点编号对应的节点与工作节点 2之间的数据流向。 例如, 根据图 3所示的流处理网络拓朴路由表可知, 工作节点 2与节点编号 3对应的 节点之间的数据流向为 S2;工作节点 2与节点编号 4对应的节点之间无数据流 向, 因此, 工作节点 2与节点编号 4对应的节点之间的流编号为 N/A。
Figure imgf000025_0001
Figure imgf000025_0002
如表一所示, 当失效节点为节点编号为 3的节点时, 由表一可知, 由于工 作节点 2与节点编号为 3的节点的相关度为 1, 则确定工作节点 2与失效节点 相关; 当失效节点为节点编号为 4的节点时, 由于工作节点 2与节点编号为 4 的节点的相关度为 0, 则工作节点 2确定与失效节点不相关。
当然, 工作节点除釆用上述方式确定是否与失效节点相关外, 还可以釆用 其它方式。 例如, 也可以通过从流处理网络拓朴路由表中提取是否与失效节点 相关的信息来实现。 其中, 如果釆用从流处理网络拓朴路由表中提取是否与失 效节点相关的信息来实现, 则从流处理网络拓朴路由表中提取是否与失效节点 相关的信息的节点可以是工作节点自身, 也可以是其它工作节点在提取到是否 与失效节点相关的节点信息后, 将该节点信息发送给工作节点, 本发明实施例 对此不作具体限定。
605: 工作节点处理接收到的重发数据, 并将处理后的重发数据发送至下 游节点。
当通过步骤 604确定和失效节点相关后, 工作节点需要处理接收到的重发 数据, 并在处理完成后, 将处理后的重发数据发送至下游节点。 关于工作节点 处理接收到的重发数据的方式, 以及将处理后的重发数据发送至下游节点的方 式, 本发明实施例不作具体限定。
由于在分布式流处理系统中, 各个工作节点在处理数据时, 均会获得一个 数据处理结果, 因此, 各个工作节点在向下游节点发送重发数据时, 会将数据 处理结果一并发送至下游节点,使下游节点可以根据该数据处理结果继续处理 数据。 此外, 各个工作节点在处理数据时, 也需要在上游节点发送的数据处理 结果的基础上继续处理数据。 在本发明实施例中, 为了保证能够方便快捷地处 理重发数据, 各个工作节点可以实时存储状态信息, 该状态信息中包括但不限 于每个工作节点当前的节点状态信息及后续处理数据所需的数据结果信息。 具 体地, 各个工作节点可以在每接收完一组数据之后, 存储一次状态信息, 保证 后续可以在之前存储的状态信息的基础上继续处理重发数据。 因此, 工作节点 在处理接收到的重发数据时, 可以先获取预先存储的状态信息, 根据预先存储 的状态信息处理接收到的重发数据。 其中, 状态信息中包括的当前的节点状态 信息包括但不限于为相连的上游节点、 下游节点以及工作节点自身的节点配置 信息等。
其中, 工作节点在获取预先存储的状态信息时, 需要结合当前接收的重发 数据的分组情况以及工作节点最新处理过的数据的分组情况而定。 例如, 如果 源节点发送重发数据时, 从第 3组重发数据开始重新发送, 则工作节点开始接 收的重发数据即为第 3组。 另外, 如果工作节点最新处理过的数据为第 5组。 由于处理第 3组重发数据需要在已经处理过的第 2组数据的基础上进行,因此, 工作节点需要先回退至第 2组数据的处理结果, 因此, 需要获取预先存储的第 2组数据的状态信息。
为了便于对上述工作节点根据预先存储的状态信息处理接收到的重发数 据进行解释说明, 下面以一个具体的例子对上述过程进行说明。 具体地, 如果 源节点发送的每个重发数据中包含数量不等的计数单元,各个节点的任务是统 计数据中包含的计数单元的总个数, 且各节点在处理数据中包含的计数单元 时, 可能会合并或删减计数单元的个数。 在这种情况下, 工作节点在对接收的 重发数据进行处理时, 需要在上游节点统计的计数单元的基础上进行统计。 在 本发明实施例中, 为了便于对工作节点的数据处理结果进行统计, 工作节点每 处理一些数据即存储一次状态信息, 后续处理重发数据时, 即可在已经处理的 数据对应的状态信息中包括的后续处理数据需要用到的数据结果信息的基础 上继续处理重发数据。 例如, 工作节点可以每处理一组重发数据, 即存储一次 状态信息, 并在处理下一组重发数据时, 在存储的上一组重发数据的状态信息 的基础上继续进行数据处理。 因此, 工作节点在处理重发数据时, 可以获取存 储的上一组数据的状态信息中统计的计数单元的个数, 并在此计数单元的基础 上继续处理重发数据。
606: 工作节点接收上游节点发送的信号包, 根据当前接收到的信号包中 携带的分组标识确定是否需要存储状态信息, 如果需要存储状态信息, 则根据 重发数据的处理结果存储状态信息, 流程结束。
该步骤至步骤 609为可选步骤。 由于状态信息中至少包括当前的节点状态 信息及后续处理数据所需的数据结果信息, 因此, 工作节点可以实时存储状态 信息, 以保证节点能够正常处理后续重发数据。 又由于如果工作节点对接收的 每个重发数据均存储状态信息的话, 会浪费工作节点自身的很多资源。 因此, 本发明实施例提供的方法支持根据源节点对重发数据的分组情况存储状态信 息, 并在每处理完一组重发数据后, 存储一次状态信息。 由于在该实施例中, 源节点通过向下游节点发送携带分组标识的信号包来标识重发数据的分组情 况, 所以工作节点可以接收上游节点发送的信号包, 根据当前接收到的信号包 中携带的分组标识确定是否需要存储状态信息。 其中, 工作节点根据当前接收 到的信号包中携带的分组标识确定是否需要存储状态信息的方式可以有很多 种, 具体实施时, 包括但不限于通过如下方式来实现:
获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 其中, 预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判 断当前接收到的信号包中携带的分组标识与预先存储的分组标识对应的预设 分组标识是否一致; 如果当前接收到的信号包中携带的分组标识与预先存储的 分组标识对应的预设分组标识不一致, 则确定需要存储状态信息。 其中, 预先 存储的分组标识用于表明工作节点已经处理过的最新数据。 例如, 如果工作节 点当前已经处理过第 4组数据, 则预先存储的分组标识为 4。 另外, 预先存储 的分组标识对应的预设分组标识包括但不限于为预先存储的分组标识对应的 下一个分组标识。 例如, 预先存储的分组标识为 1, 如果该分组标识 1对应的 下一个分组标识为 2, 则预先存储的分组标识 1对应的预设分组标识为分组标 识 2。
为了便于对上述工作节点根据当前接收到的信号包中携带的分组标识确 定是否需要存储状态信息的方式进行解释说明, 下面将举例进行说明。
例如, 如果工作节点获取到的预先存储的分组标识为分组标识 4, 且如果 预先存储的分组标识对应的预设分组标识为预先存储的分组标识对应的下一 个分组标识, 则在该举例中确定的预先存储的分组标识对应的预设分组标识为
5。 此时, 如果工作节点当前接收到的信号包中携带的分组标识为 2, 表明工作 节点当前接收到第 2组重发数据。 由于当前接收到的信号包中携带的分组标识 与获取到的预先存储的分组标识对应的预设分组标识 5不一致, 因此, 为了便 于对已经接收的第 2组重发数据的处理结果进行存储, 工作节点此时需要存储 状态信息, 以便后续可以在对第 2组重发数据的处理结果上继续处理后续接收 到的重发数据。
607: 工作节点对接收到的重发数据不做处理, 并接收上游节点发送的其 它数据, 该其它数据包括携带分组标识的信号包。
其中, 如果工作节点确定和失效节点不相关, 则对接收到的重发数据不做 处理, 以节省工作节点自身的节点资源。 另外, 为了节省工作节点自身的存储 空间, 工作节点可以丟弃接收的重发数据。 由于源节点不断有数据流入, 所以源节点除了发送从系统中存在失效节点 到系统重建好这段时间的重发数据之外, 还需要发送流入的其它数据, 并且源 节点对流入的其它数据也会进行分组标识。 在本发明实施例中, 源节点在发送 其它数据之前, 同样以对接收的其它数据进行分组编号后, 将其它数据对应的 分组标识添加到信号包中的方式, 即源节点在每发完一组其它数据之后, 发送 一个用以表明该组其它数据的分组标识的信号包来使下游节点明确处理的其 它数据的分组状况。
608: 工作节点获取预先存储的分组标识, 并确定预先存储的分组标识对 应的预设分组标识, 判断当前接收到的信号包中携带的分组标识与预先存储的 分组标识对应的预设分组标识是否一致。
为了保证处理的数据不重不漏, 工作节点需要获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标识。 其中, 在该步骤中, 预先存 储的分组标识对应的预设分组标识也可以为预先存储的分组标识对应的下一 个分组标识。 工作节点在确定预先存储的分组标识对应的预设分组标识后, 通 过判断当前接收到的信号包中携带的分组标识与预先存储的分组标识对应的 预设分组标识是否一致来确定是否对后续接收到的其它数据进行处理, 具体参 见步骤 609。
609: 如果当前接收到的信号包中携带的分组标识与预先存储的分组标识 对应的预设分组标识一致, 则对上游节点发送的后续其它数据进行处理。
结合上个步骤,如果当前接收到的信号包中携带的分组标识与预先存储的 分组标识对应的预设分组标识一致, 则说明工作节点后续将会在已经处理的其 它数据的基础上,接收上游节点发送的其它还未处理的下一组其它数据,因此, 工作节点对上游节点发送的后续其它数据进行处理。
例如, 当工作节点获取到的预先存储的分组标识为 3, 即表明工作节点已 经处理完成第 3组数据。且如果预先存储有的分组标识对应的预设分组标识为 预先存储的分组标识的下一个分组标识, 则确定的预先存储的分组标识对应的 预设分组标识为 4。如果工作节点当前接收到的信号包中携带的分组标识为 4, 表明上游节点已经发送完第 4组其它数据, 将会发送第 5组其它数据。 因此, 工作节点将会对上游节点发送的后续的第 5组其它数据进行处理。
其中, 关于工作节点对上游节点发送的其它数据进行处理的方式, 与工作 节点对重发数据进行处理的方式一致, 具体可参见步骤 605中工作节点对重发 数据的处理方式, 此处不再赘述。
可选地, 对上游节点发送的后续其它数据进行处理之后, 为了对后续处理 的其它数据的状态信息进行实时存储,还可以包括:获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标识, 其中, 该预先存储的分组标 识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带 的分组标识与预先存储的分组标识对应的预设分组标识是否一致; 如果当前接 收到的信号包中携带的分组标识与预先存储的分组标识对应的预设分组标识 不一致, 则确定需要存储状态信息, 并根据接收当前接收的信号包之前接收的 其它数据的处理结果存储状态信息。
其中, 上述工作节点确定是否对处理的后续其它数据进行状态信息存储的 方法以及对后续其它数据进行状态信息存储的原理同步骤 606中工作节点确定 是否对重发数据进行状态信息存储以及对重发数据进行状态信息的原理相同, 具体参见上述步骤 606中的内容, 在此不再赘述。
本发明实施例提供的方法, 通过接收上游节点发送的重发数据, 并在确定 与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处理 上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要 在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或 下游其它节点频繁交互, 因而提高了数据处理的效率。 结合图 1所示的实施环境结构示意图、 图 2所示的分布式流处理系统的结 构示意图和图 4至图 6所示实施例的内容, 本发明实施例提供了一种分布式流 处理系统的容错方法。 为了便于说明, 本发明实施例以分布式流处理系统中的 一个工作节点失效后, 源节点在发送重发数据时, 对重发数据进行分组编号后 直接添加到重发数据中, 使得下游节点在接收该携带分组编号的重发数据后, 可以根据重发数据中携带的分组编号进行状态信息存储为例, 对本实施例提供 的方法进行详细地解释说明。 参见图 7, 本发明实施例提供的方法流程包括:
701: 源节点和工作节点获取分布式流处理系统中的失效节点的节点信息。 该步骤的原理同上述实施例二中步骤 601的原理一致, 具体参见上述实施 例二中步骤 601, 在此不再赘述。
702: 源节点根据失效节点的节点信息获取緩存的数据, 并将緩存的数据 作为重发数据发送至下游节点。
该步骤的原理同上述实施例二中步骤 602的原理一致, 具体参见上述实施 例二中步骤 602, 在此不再赘述。
需要说明的是, 在本发明实施例中, 源节点将緩存的数据作为重发数据发 送至下游节点时, 将緩存的数据作为重发数据, 并将重发数据对应的分组标识 添加到重发数据中, 将携带有分组标识的重发数据发送至下游节点。
具体地, 源节点在对重发数据进行分组后, 直接将该分组标识添加到发送 的每个重发数据中。 因此, 下游节点在接收上游节点发送的每个重发数据时, 均可以从重发数据携带的分组标识中获得该重发数据对应的分组编号。
703: 工作节点接收上游节点发送的重发数据。
该步骤的原理同上述实施例二中步骤 603的原理一致, 具体参见上述实施 例二中步骤 603, 在此不再赘述。
704: 工作节点根据失效节点的节点信息确定是否与失效节点相关, 如果 与失效节点相关, 则执行步骤 705; 如果与失效节点不相关, 则执行步骤 707。
该步骤的原理同上述实施例二中步骤 604的原理一致, 具体参见上述实施 例二中步骤 604, 在此不再赘述。
705: 工作节点处理接收到的重发数据, 并将处理后的重发数据发送至下 游节点。
该步骤的原理同上述实施例二中步骤 605的原理一致, 具体参见上述实施 例二中步骤 605, 在此不再赘述。
706: 工作节点根据重发数据中携带的分组标识确定是否需要存储状态信 息, 如果需要存储状态信息, 则根据重发数据的处理结果存储状态信息, 流程 结束。
具体地, 当源节点对重发数据进行分组编号后将分组编号添加到重发数据 中时, 上游节点发送的重发数据中携带有对应的分组标识, 工作节点根据重发 数据中携带的分组标识确定是否需要存储状态信息, 包括:
获取预先存储的分组标识, 并确定预先存储的分组标识对应的预设分组标 识, 判断重发数据中携带的分组标识与预先存储的分组标识对应的预设分组标 识是否一致; 如果重发数据中携带的分组标识与预先存储的分组标识对应的预 设分组标识不一致, 则确定需要存储状态信息。
例如, 当工作节点确定获取到的预先存储的分组标识为 3, 表明工作节点 已经处理过第 3组数据。 另外, 如果预先存储的的分组标识对应的预设分组标 识为预先存储的分组标识的下一个分组标识, 则预先存储的分组标识对应的预 设分组标识为 4。 此时, 如果重发数据中携带的分组标识为 2, 表明当前接收 的重发数据为第 2组。 由于重发数据中携带的分组标识 2与预先存储的分组标 识对应的预设分组标识不一致, 为了对处理的第 2组重发数据进行状态存储, 工作节点此时需要存储状态信息, 该状态信息包括当前的节点状态信息及处理 后续重发数据所需的数据结果信息。
707: 工作节点对接收到的重发数据不做处理, 并接收上游节点发送的其 它数据, 该其它数据中携带有对应的分组标识。
其中, 如果工作节点确定和失效节点不相关, 则对接收到的重发数据不做 处理, 以节省工作节点自身的节点资源。 另外, 为了节省工作节点自身的存储 空间, 工作节点可以丟弃接收的重发数据。 由于源节点不断有数据流入, 所以源节点除发送从系统中存在失效节点到 系统重建好这段时间的重发数据之外, 还需要发送流入的其它数据。 在本发明 实施例中, 源节点在发送其它数据时, 将对其它数据的分组标识直接添加在其 它数据中发送至下游节点。 因此, 工作节点接收上游节点发送的其它数据后, 可以直接从其它数据中获得其它数据的分组编号。
708: 工作节点获取预先存储的分组标识, 并确定预先存储的分组标识对 应的预设分组标识, 判断其它数据中携带的分组标识与预先存储的分组标识对 应的预设分组标识是否一致。
该步骤的原理同上述实施例二中步骤 608的原理一致, 具体参见上述实施 例二中步骤 608, 在此不再赘述。
709: 如果其它数据中携带的分组标识与预先存储的分组标识对应的预设 分组标识不一致, 则对其它数据进行处理。
结合上个步骤,如果当前接收到的其它数据中携带的分组标识与预先存储 的分组标识对应的预设分组标识不一致, 则说明工作节点还没有处理过该其它 数据。 因此, 工作节点对上游节点发送的其它数据进行处理。
例如, 当获取到的预先存储的分组标识为 3, 表明工作节点之前已经处理 至第 3组其它数据。 另外, 如果预先存储的的分组标识对应的预设分组标识为 预先存储的分组标识的下一个分组标识, 则预先存储的分组标识对应的预设分 组标识为 4。 如果工作节点当前接收到的其它数据中携带的分组标识为 5, 表 明此时接收的其它数据为上游节点发送的第第 5组其它数据。 此时, 由于工作 节点根据获取到的预先存储的分组标识表明当前只处理至第 3组其它数据, 因 此, 工作节点对上游节点发送的第 5组其它数据进行处理。
其中, 关于工作节点对上游节点发送的其它数据进行处理的方式, 与工作 节点对重发数据进行处理的方式一致, 具体可参见步骤 705中工作节点对重发 数据的处理方式, 此处不再赘述。
可选地, 对其它数据进行处理之后, 为了实时存储其它数据的状态信息, 还可以包括: 获取预先存储的分组标识, 并确定预先存储的分组标识对应的预 设分组标识, 其中, 该预先存储的分组标识为之前接收到的数据中携带的分组 标识; 判断其它数据中携带的分组标识与预先存储的分组标识对应的预设分组 标识是否一致; 如果其它数据中携带的分组标识与预先存储的分组标识对应的 预设分组标识不一致, 则确定需要存储状态信息, 并根据其它数据的处理结果 存储状态信息。
其中, 上述工作节点确定是否对处理的其它数据进行状态信息存储的方法 以及对其它数据进行状态信息存储的原理同步骤 706中工作节点确定是否对重 发数据进行状态信息存储以及对重发数据进行状态信息的原理相同, 具体参见 上述步骤 706中的内容, 在此不再赘述。
本发明实施例提供的方法, 通过接收上游节点发送的重发数据, 并在确定 与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处理 上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要 在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或 下游其它节点频繁交互, 因而提高了数据处理的效率。 图 8示出了本发明另一实施例提供的一种工作节点的示意图, 该工作节点 用于执行上述图 4至图 7所示实施例中任一实施例中工作节点执行的功能。 参 见图 8, 该工作节点包括:
第一获取模块 801,用于获取分布式流处理系统中的失效节点的节点信息; 第一接收模块 802, 用于接收上游节点发送的重发数据, 重发数据由源节 点始发, 上游节点为源节点或上游工作节点;
第一确定模块 803, 用于根据失效节点的节点信息确定是否与失效节点相 关;
第一处理模块 804, 用于当与失效节点相关时, 处理接收到的重发数据, 并将处理后的重发数据发送至下游节点。 可选地, 第一获取模块 801, 用于接收集中管理实体发送的失效节点的节 点信息, 其中, 集中管理实体用于监控分布式流处理系统中的各个节点的工作 状况。
可选地, 第一确定模块 803, 包括:
查询单元, 用于根据失效节点的节点信息查询预先存储的节点关联表, 其 中, 节点关联表中记录了分布式流处理系统中的各个节点的节点信息及对应的 相关度;
确定单元, 用于根据查询结果确定是否与失效节点相关。
可选地, 第一处理模块 804, 包括:
获取单元, 用于获取预先存储的状态信息, 其中, 预先存储的状态信息至 少包括当前的节点状态信息及后续处理数据所需的数据结果信息;
处理单元, 用于根据预先存储的状态信息处理接收到的重发数据。
可选地, 工作节点, 还包括:
第二接收模块, 用于接收上游节点发送的信号包, 其中, 信号包中携带有 分组标识, 分组标识为源节点对流入的数据进行分组编号后添加到信号包中 的;
第二确定模块, 用于根据当前接收到的信号包中携带的分组标识确定是否 需要存储状态信息;
第一存储模块, 用于当需要存储状态信息时, 根据重发数据的处理结果存 储状态信息。
可选地, 第二确定模块, 包括:
获取单元, 用于获取预先存储的分组标识;
第一确定单元,用于确定预先存储的分组标识对应的预设分组标识,其中, 预先存储的分组标识为之前接收到的信号包中携带的分组标识;
判断单元, 用于判断当前接收到的信号包中携带的分组标识与预先存储的 分组标识对应的预设分组标识是否一致; 第二确定单元, 用于当当前接收到的信号包中携带的分组标识与预先存储 的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
可选地, 工作节点, 还包括:
第三确定模块, 用于当上游节点发送的重发数据中携带有对应的分组标识 时, 根据重发数据中携带的分组标识确定是否需要存储状态信息, 其中, 分组 标识为源节点对重发数据进行分组编号后添加到重发数据中的;
第二存储模块, 用于当需要存储状态信息时, 根据重发数据的处理结果存 储状态信息。
可选地, 第三确定模块, 包括:
获取单元, 用于获取预先存储的分组标识;
第一确定单元,用于确定预先存储的分组标识对应的预设分组标识,其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识;
判断单元, 用于判断重发数据中携带的分组标识与预先存储的分组标识对 应的预设分组标识是否一致;
第二确定单元, 用于当重发数据中携带的分组标识与预先存储的分组标识 对应的预设分组标识不一致时, 确定需要存储状态信息。
可选地, 工作节点, 还包括:
第四确定模块, 用于当确定与失效节点不相关时, 对接收到的重发数据不 做处理。
可选地, 工作节点, 还包括:
第三接收模块, 用于接收上游节点发送的其它数据, 其中, 其它数据中携 带有对应的分组标识, 分组标识为源节点对其它数据进行分组编号后添加到其 它数据中的;
第二获取模块, 用于获取预先存储的分组标识;
第五确定模块,用于确定预先存储的分组标识对应的预设分组标识,其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识; 第一判断模块, 用于判断其它数据中携带的分组标识与预先存储的分组标 识对应的预设分组标识是否一致;
第二处理模块, 用于当其它数据中携带的分组标识与预先存储的分组标识 对应的预设分组标识不一致时, 对其它数据进行处理。
可选地, 工作节点, 还包括:
第三获取模块, 用于获取预先存储的分组标识;
第六确定模块,用于确定预先存储的分组标识对应的预设分组标识,其中, 预先存储的分组标识为之前接收到的数据中携带的分组标识;
第二判断模块, 用于判断其它数据中携带的分组标识与预先存储的分组标 识对应的预设分组标识是否一致;
第七确定模块, 用于当其它数据中携带的分组标识与预先存储的分组标识 对应的预设分组标识不一致时, 确定需要存储状态信息;
第三存储模块, 用于根据其它数据的处理结果存储状态信息。
可选地, 工作节点, 还包括:
第四接收模块, 用于接收上游节点发送的信号包, 其中, 信号包中携带有 分组标识, 分组标识为源节点对流入的数据进行分组编号后添加到信号包中 的;
第四获取模块, 用于获取预先存储的分组标识, 其中, 预先存储的分组标 识为之前接收到的信号包中携带的分组标识;
第三判断模块, 用于判断当前接收到的信号包中携带的分组标识与预先存 储的分组标识是否一致;
第三处理模块, 用于当当前接收到的信号包中携带的分组标识与预先存储 的分组标识一致时, 对上游节点发送的后续其它数据进行处理。
可选地, 工作节点, 还包括:
第五获取模块, 用于获取预先存储的分组标识;
第八确定模块,用于确定预先存储的分组标识对应的预设分组标识,其中, 预先存储的分组标识为之前接收到的信号包中携带的分组标识;
第四判断模块, 用于判断当前接收到的信号包中携带的分组标识与预先存 储的分组标识对应的预设分组标识是否一致;
第十确定模块, 用于当当前接收到的信号包中携带的分组标识与预先存储 的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息;
第四存储模块, 用于根据接收当前接收的信号包之前接收的其它数据的处 理结果存储状态信息。
本发明实施例提供的工作节点, 通过接收上游节点发送的重发数据, 并在 确定与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才 处理上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不 需要在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上 游或下游其它节点频繁交互, 因而提高了数据处理的效率。 图 9示出了本发明另一实施例提供的一种源节点的结构示意图, 该源节点 用于执行上述图 4至图 7所示实施例中任一实施例中源节点执行的功能。参见 图 9, 该源节点包括:
第一获取模块 901,用于获取分布式流处理系统中的失效节点的节点信息; 第二获取模块 902, 用于根据失效节点的节点信息获取緩存的数据; 发送模块 903, 用于将緩存的数据作为重发数据发送至下游节点, 由下游 节点根据下游节点与失效节点是否相关来确定是否处理重发数据。
可选地, 第一获取模块 901, 用于接收集中管理实体发送的失效节点的节 点信息, 其中, 集中管理实体用于监控分布式流处理系统中的各个节点的工作 状况。
可选地, 发送模块 903, 包括:
第一添加单元, 用于将重发数据对应的分组标识添加到信号包中; 第一发送单元, 用于将携带有分组标识的信号包发送至下游节点。 可选地, 发送模块 903, 包括:
第二添加单元, 用于将緩存的数据作为重发数据, 并将重发数据对应的分 组标识添加到重发数据中;
第二发送单元, 用于将携带有分组标识的重发数据发送至下游节点。 可选地, 源节点, 还包括:
分组编号模块, 用于根据接收数据的时间间隔或数据大小对接收到的数据 进行分组编号, 得到每个数据对应的分组标识。
本发明实施例提供的源节点, 通过根据失效节点的节点信息获取緩存的数 据, 并将緩存的数据作为重发数据发送至下游的工作节点, 使得工作节点接收 上游节点发送的重发数据, 并在确定与失效节点相关后, 处理接收到的重发数 据, 使得在与失效节点相关时才处理上游节点发送的重发数据, 不仅不影响其 它节点的数据处理效率, 而且不需要在本地存储大量备份数据, 从而节省了本 地资源。 另外, 由于不需要与上游或下游其它节点频繁交互, 因而提高了数据 处理的效率。 图 10示出了本发明另一实施例提供的一种分布式流处理的容错系统, 参 见图 10, 该系统包括: 源节点和多个工作节点;
其中, 系统中的任一工作节点如上述图 4至图 7所示实施例中任一实施例 中所述的工作节点, 具体参见上述图 4至图 7所示实施例的内容, 在此不再赘 述;
源节点如上述图 4至图 7所示实施例中任一实施例中所述的源节点, 具体 参见上述图 4至图 7所示实施例的内容, 在此不再赘述。
本发明实施例提供的系统, 通过接收上游节点发送的重发数据, 并在确定 与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处理 上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需要 在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游或 下游其它节点频繁交互, 因而提高了数据处理的效率。 图 11 示出了本发明另一实施例提供的一种工作节点的结构示意图, 该工 作节点用于执行上述图 4至图 7所示实施例中任一实施例中工作节点所执行的 功能。 参见图 11, 该工作节点包括至少一个处理器 1101、 发射机 1102和接收 机 1103。
其中:处理器 1101,用于获取分布式流处理系统中的失效节点的节点信息; 接收机 1103, 用于接收上游节点发送的重发数据, 其中, 重发数据由源节 点始发, 上游节点为源节点或上游工作节点;
处理器 1101, 还用于根据失效节点的节点信息确定是否与失效节点相关; 当与失效节点相关时, 处理接收到的重发数据;
发射机 1102, 用于将处理后的重发数据发送至下游节点。
可选地,接收机 1103,还用于接收集中管理实体发送的失效节点的节点信 息,其中,集中管理实体用于监控分布式流处理系统中的各个节点的工作状况。
可选地, 处理器 1101, 还用于根据失效节点的节点信息查询预先存储的 节点关联表, 其中, 节点关联表中记录了分布式流处理系统中的各个节点的节 点信息及对应的相关度; 根据查询结果确定是否与失效节点相关。
可选地, 处理器 1101, 还用于获取预先存储的状态信息, 其中, 预先存储 的状态信息至少包括当前的节点状态信息及后续处理数据所需的数据结果信 息; 根据预先存储的状态信息处理接收到的重发数据。
可选地, 接收机 1103, 还用于接收上游节点发送的信号包, 其中, 信号包 中携带有分组标识, 分组标识为源节点对流入的数据进行分组编号后添加到信 号包中的;
处理器 1101,还用于根据当前接收到的信号包中携带的分组标识确定是否 需要存储状态信息; 当需要存储状态信息时, 根据重发数据的处理结果存储状 态信息。 可选地, 处理器 1101, 还用于获取预先存储的分组标识; 确定预先存储的 分组标识对应的预设分组标识, 其中, 预先存储的分组标识为之前接收到的信 号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与预先存 储的分组标识对应的预设分组标识是否一致; 当当前接收到的信号包中携带的 分组标识与预先存储的分组标识对应的预设分组标识不一致时, 确定需要存储 状态信息。
可选地,处理器 1101,还用于当上游节点发送的重发数据中携带有对应的 分组标识, 其中, 分组标识为源节点对重发数据进行分组编号后添加到重发数 据中的时, 根据重发数据中携带的分组标识确定是否需要存储状态信息; 当需 要存储状态信息时, 根据重发数据的处理结果存储状态信息。
可选地, 处理器 1101, 还用于获取预先存储的分组标识; 确定预先存储 的分组标识对应的预设分组标识, 其中, 预先存储的分组标识为之前接收到的 数据中携带的分组标识; 判断重发数据中携带的分组标识与预先存储的分组标 识对应的预设分组标识是否一致; 当重发数据中携带的分组标识与预先存储的 分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
可选地, 处理器 1101, 还用于当确定与失效节点不相关时, 对接收到的重 发数据不做处理。
可选地, 接收机 1103, 还用于接收上游节点发送的其它数据, 其中, 其它 数据中携带有对应的分组标识, 分组标识为源节点对其它数据进行分组编号后 添加到其它数据中的;
处理器 1101,还用于获取预先存储的分组标识; 确定预先存储的分组标识 对应的预设分组标识, 其中, 预先存储的分组标识为之前接收到的数据中携带 的分组标识; 判断其它数据中携带的分组标识与预先存储的分组标识对应的预 设分组标识是否一致; 当其它数据中携带的分组标识与预先存储的分组标识对 应的预设分组标识不一致时, 对其它数据进行处理。
可选地, 处理器 1101, 还用于获取预先存储的分组标识; 确定预先存储的 分组标识对应的预设分组标识, 其中, 预先存储的分组标识为之前接收到的数 据中携带的分组标识; 判断其它数据中携带的分组标识与预先存储的分组标识 对应的预设分组标识是否一致; 当其它数据中携带的分组标识与预先存储的分 组标识对应的预设分组标识不一致时, 确定需要存储状态信息; 根据其它数据 的处理结果存储状态信息。
可选地, 接收机 1103, 还用于接收上游节点发送的信号包, 其中, 信号包 中携带有分组标识, 分组标识为源节点对流入的数据进行分组编号后添加到信 号包中的;
处理器 1101, 还用于获取预先存储的分组标识, 其中, 预先存储的分组标 识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带 的分组标识与预先存储的分组标识是否一致; 当当前接收到的信号包中携带的 分组标识与预先存储的分组标识一致时, 对上游节点发送的后续其它数据进行 处理。
可选地, 所述处理器 1101, 还用于获取预先存储的分组标识; 确定预先存 储的分组标识对应的预设分组标识, 其中, 预先存储的分组标识为之前接收到 的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与预 先存储的分组标识对应的预设分组标识是否一致; 当当前接收到的信号包中携 带的分组标识与预先存储的分组标识对应的预设分组标识不一致时, 确定需要 存储状态信息; 根据接收当前接收的信号包之前接收的其它数据的处理结果存 储状态信息。
本发明实施例提供的工作节点, 通过接收上游节点发送的重发数据, 并在 确定与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才 处理上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不 需要在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上 游或下游其它节点频繁交互, 因而提高了数据处理的效率。 图 12示出了本发明另一实施例提供的一种源节点的结构示意图, 该源节 点用于执行上述图 4至图 7所示实施例中任一实施例中源节点所执行的功能。 参见图 12, 该源节点包括至少一个处理器 1201和发射机 1202。
其中:处理器 1201,用于获取分布式流处理系统中的失效节点的节点信息; 根据失效节点的节点信息获取緩存的数据;
发射机 1202,用于将緩存的数据作为重发数据发送至下游节点, 由下游节 点根据下游节点与失效节点是否相关来确定是否处理重发数据。
处理器 1201,还用于接收集中管理实体发送的失效节点的节点信息,其中, 集中管理实体用于监控分布式流处理系统中的各个节点的工作状况。
可选地,处理器 1201,还用于将重发数据对应的分组标识添加到信号包中; 发射机 1202, 还用于将携带有分组标识的信号包发送至下游节点。
可选地, 处理器 1201, 还用于将緩存的数据作为重发数据, 并将重发数据 对应的分组标识添加到重发数据中; 将携带有分组标识的重发数据发送至下游 节点。
可选地,处理器 1201,还用于根据接收数据的时间间隔或数据大小对接收 到的数据进行分组编号, 得到每个数据对应的分组标识。
本发明实施例提供的源节点, 通过接收上游节点发送的重发数据, 并在确 定与失效节点相关后, 处理接收到的重发数据, 使得在与失效节点相关时才处 理上游节点发送的重发数据, 不仅不影响其它节点的数据处理效率, 而且不需 要在本地存储大量备份数据, 从而节省了本地资源。 另外, 由于不需要与上游 或下游其它节点频繁交互, 因而提高了数据处理的效率。 需要说明的是: 上述实施例提供的工作节点和源节点在实现分布式流处理 系统的容错方法时, 仅以上述各功能模块的划分进行举例说明, 实际应用中, 可以根据需要而将上述功能分配由不同的功能模块完成, 即将设备的内部结构 划分成不同的功能模块, 以完成以上描述的全部或者部分功能。 另外, 上述实 施例提供的工作节点、 源节点与分布式流处理系统的容错方法实施例属于同一 构思, 其具体实现过程详见方法实施例, 这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通 过硬件来完成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以存储 于一种计算机可读存储介质中, 上述提到的存储介质可以是只读存储器, 磁盘 或光盘等。
以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明的 精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的 保护范围之内。

Claims

权 利 要 求 书
1、 一种分布式流处理系统的容错方法, 其特征在于, 所述方法包括: 获取分布式流处理系统中的失效节点的节点信息, 并接收上游节点发送的 重发数据, 所述重发数据由源节点始发, 所述上游节点为所述源节点或上游工 作节点;
根据所述失效节点的节点信息确定是否与所述失效节点相关;
如果与所述失效节点相关, 则处理接收到的重发数据, 并将处理后的重发 数据发送至下游节点。
2、 根据权利要求 1所述的方法, 其特征在于, 所述获取所述分布式流处理 系统中失效节点的节点信息, 包括:
接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监 控所述分布式流处理系统中的各个节点的工作状况。
3、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述失效节点的节 点信息确定是否与所述失效节点相关, 包括:
根据所述失效节点的节点信息查询预先存储的节点关联表, 所述节点关联 表中记录了所述分布式流处理系统中的各个节点的节点信息及对应的相关度; 根据查询结果确定是否与所述失效节点相关。
4、根据权利要求 1所述的方法, 其特征在于, 所述处理接收到的重发数据, 包括:
获取预先存储的状态信息, 所述预先存储的状态信息至少包括当前的节点 状态信 , 及后续处理数据所需的数据结果信息;
根据所述预先存储的状态信息处理接收到的重发数据。
5、 根据权利要求 4所述的方法, 其特征在于, 所述根据所述预先存储的状 态信息处理接收到的重发数据之后, 还包括:
接收所述上游节点发送的信号包, 所述信号包中携带有分组标识, 所述分 组标识为源节点对流入的数据进行分组编号后添加到所述信号包中的;
根据当前接收到的信号包中携带的分组标识确定是否需要存储状态信息; 如果需要存储状态信息, 则根据所述重发数据的处理结果存储状态信息。
6、 根据权利要求 5所述的方法, 其特征在于, 所述根据当前接收到的信号 包中携带的分组标识确定是否需要存储状态信息, 包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识对 应的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识对 应的预设分组标识不一致, 则确定需要存储状态信息。
7、 根据权利要求 4所述的方法, 其特征在于, 所述上游节点发送的重发数 据中携带有对应的分组标识, 所述分组标识为源节点对所述重发数据进行分组 编号后添加到所述重发数据中的;
所述根据所述预先存储的状态信息处理接收到的重发数据之后, 还包括: 根据所述重发数据中携带的分组标识确定是否需要存储状态信息; 如果需要存储状态信息, 则根据所述重发数据的处理结果存储状态信息。
8、 根据权利要求 7所述的方法, 其特征在于, 所述根据所述重发数据中携 带的分组标识确定是否需要存储状态信息, 包括: 获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述重发数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识是否一致;
如果所述重发数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识不一致, 则确定需要存储状态信息。
9、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述失效节点的节 点信息确定是否与所述失效节点相关之后, 还包括:
如果与所述失效节点不相关, 则对接收到的重发数据不做处理。
10、 根据权利要求 9所述的方法, 其特征在于, 所述对接收到的重发数据 不做处理之后, 还包括:
接收所述上游节点发送的其它数据, 所述其它数据中携带有对应的分组标 识, 所述分组标识为源节点对所述其它数据进行分组编号后添加到所述其它数 据中的;
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述其它数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识是否一致;
如果所述其它数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识不一致, 则对所述其它数据进行处理。
11、 根据权利要求 10所述的方法, 其特征在于, 所述对所述其它数据进行 处理之后, 还包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 判断所述其它数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识是否一致;
如果所述其它数据中携带的分组标识与所述预先存储的分组标识对应的预 设分组标识不一致, 则确定需要存储状态信息, 并根据所述其它数据的处理结 果存储状态信息。
12、 根据权利要求 9所述的方法, 其特征在于, 所述对接收到的重发数据 不做处理之后, 还包括:
接收所述上游节点发送的信号包, 所述信号包中携带有分组标识, 所述分 组标识为源节点对流入的数据进行分组编号后添加到所述信号包中的;
获取预先存储的分组标识, 所述预先存储的分组标识为之前接收到的信号 包中携带的分组标识;
判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识是 否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识一 致, 则对所述上游节点发送的后续其它数据进行处理。
13、 根据权利要求 12所述的方法, 其特征在于, 所述对所述上游节点发送 的后续其它数据进行处理之后, 还包括:
获取预先存储的分组标识, 并确定所述预先存储的分组标识对应的预设分 组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识; 判断当前接收到的信号包中携带的分组标识与所述预先存储的分组标识对 应的预设分组标识是否一致;
如果当前接收到的信号包中携带的分组标识与所述预先存储的分组标识对 应的预设分组标识不一致, 则确定需要存储状态信息, 并根据接收当前接收的 信号包之前接收的其它数据的处理结果存储状态信息。
14、 一种分布式流处理系统的容错方法, 其特征在于, 所述方法包括: 获取分布式流处理系统中的失效节点的节点信息;
根据所述失效节点的节点信息获取緩存的数据, 并将緩存的数据作为重发 数据发送至下游节点, 由所述下游节点根据所述下游节点与所述失效节点是否 相关来确定是否处理所述重发数据。
15、 根据权利要求 14所述的方法, 其特征在于, 所述获取分布式流处理系 统中的失效节点的节点信息, 包括:
接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监 控所述分布式流处理系统中的各个节点的工作状况。
16、 根据权利要求 14所述的方法, 其特征在于, 所述将緩存的数据作为重 发数据发送至下游节点之后, 还包括:
将所述重发数据对应的分组标识添加到信号包中, 将携带有分组标识的信 号包发送至下游节点。
17、 根据权利要求 14所述的方法, 其特征在于, 所述将緩存的数据作为重 发数据发送至下游节点, 包括:
将緩存的数据作为重发数据, 并将所述重发数据对应的分组标识添加到所 述重发数据中, 将携带有分组标识的重发数据发送至下游节点。
18、 根据权利要求 16或 17所述的方法, 其特征在于, 所述将緩存的数据 作为重发数据发送至下游节点之前, 还包括:
根据接收数据的时间间隔或数据大小对接收到的数据进行分组编号, 得到 每个数据对应的分组标识。
19、 一种工作节点, 其特征在于, 所述工作节点包括:
第一获取模块, 用于获取分布式流处理系统中的失效节点的节点信息; 第一接收模块, 用于接收上游节点发送的重发数据, 所述重发数据由源节 点始发, 所述上游节点为所述源节点或上游工作节点;
第一确定模块, 用于根据所述失效节点的节点信息确定是否与所述失效节 点相关;
第一处理模块, 用于当与所述失效节点相关时, 处理接收到的重发数据, 并将处理后的重发数据发送至下游节点。
20、 根据权利要求 19所述的工作节点, 其特征在于, 所述第一获取模块, 用于接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监 控所述分布式流处理系统中的各个节点的工作状况。
21、 根据权利要求 19所述的工作节点, 其特征在于, 所述第一确定模块, 包括:
查询单元, 用于根据所述失效节点的节点信息查询预先存储的节点关联表, 所述节点关联表中记录了所述分布式流处理系统中的各个节点的节点信息及对 应的相关度;
确定单元, 用于根据查询结果确定是否与所述失效节点相关。
22、 根据权利要求 19所述的工作节点, 其特征在于, 所述第一处理模块, 包括:
获取单元, 用于获取预先存储的状态信息, 所述预先存储的状态信息至少 包括当前的节点状态信息及后续处理数据所需的数据结果信息;
处理单元, 用于根据所述预先存储的状态信息处理接收到的重发数据。
23、 根据权利要求 22所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第二接收模块, 用于接收所述上游节点发送的信号包, 所述信号包中携带 有分组标识, 所述分组标识为源节点对流入的数据进行分组编号后添加到所述 信号包中的;
第二确定模块, 用于根据当前接收到的信号包中携带的分组标识确定是否 需要存储状态信息;
第一存储模块, 用于当需要存储状态信息时, 根据所述重发数据的处理结 果存储状态信息。
24、 根据权利要求 23所述的工作节点, 其特征在于, 所述第二确定模块, 包括:
获取单元, 用于获取预先存储的分组标识;
第一确定单元, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识;
判断单元, 用于判断当前接收到的信号包中携带的分组标识与所述预先存 储的分组标识对应的预设分组标识是否一致;
第二确定单元, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
25、 根据权利要求 22所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第三确定模块, 用于当上游节点发送的重发数据中携带有对应的分组标识 时, 根据所述重发数据中携带的分组标识确定是否需要存储状态信息, 所述分 组标识为源节点对所述重发数据进行分组编号后添加到所述重发数据中的; 第二存储模块, 用于当需要存储状态信息时, 根据所述重发数据的处理结 果存储状态信息。
26、 根据权利要求 25所述的工作节点, 其特征在于, 所述第三确定模块, 包括:
获取单元, 用于获取预先存储的分组标识;
第一确定单元, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识;
判断单元, 用于判断所述重发数据中携带的分组标识与所述预先存储的分 组标识对应的预设分组标识是否一致;
第二确定单元, 用于当所述重发数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 确定需要存储状态信息。
27、 根据权利要求 19所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第四确定模块, 用于当确定与所述失效节点不相关时, 对接收到的重发数 据不做处理。
28、 根据权利要求 27所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第三接收模块, 用于接收所述上游节点发送的其它数据, 所述其它数据中 携带有对应的分组标识, 所述分组标识为源节点对所述其它数据进行分组编号 后添加到所述其它数据中的;
第二获取模块, 用于获取预先存储的分组标识;
第五确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识; 第一判断模块, 用于判断所述其它数据中携带的分组标识与所述预先存储 的分组标识对应的预设分组标识是否一致;
第二处理模块, 用于当所述其它数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 对所述其它数据进行处理。
29、 根据权利要求 28所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第三获取模块, 用于获取预先存储的分组标识;
第六确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的数据中携带的分组标识;
第二判断模块, 用于判断所述其它数据中携带的分组标识与所述预先存储 的分组标识对应的预设分组标识是否一致;
第七确定模块, 用于当所述其它数据中携带的分组标识与所述预先存储的 分组标识对应的预设分组标识不一致时, 确定需要存储状态信息;
第三存储模块, 用于根据所述其它数据的处理结果存储状态信息。
30、 根据权利要求 27所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第四接收模块, 用于接收所述上游节点发送的信号包, 所述信号包中携带 有分组标识, 所述分组标识为源节点对流入的数据进行分组编号后添加到所述 信号包中的;
第四获取模块, 用于获取预先存储的分组标识, 所述预先存储的分组标识 为之前接收到的信号包中携带的分组标识;
第三判断模块, 用于判断当前接收到的信号包中携带的分组标识与所述预 先存储的分组标识是否一致;
第三处理模块, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识一致时, 对所述上游节点发送的后续其它数据进行处理。
31、 根据权利要求 30所述的工作节点, 其特征在于, 所述工作节点, 还包 括:
第五获取模块, 用于获取预先存储的分组标识;
第八确定模块, 用于确定所述预先存储的分组标识对应的预设分组标识, 所述预先存储的分组标识为之前接收到的信号包中携带的分组标识;
第四判断模块, 用于判断当前接收到的信号包中携带的分组标识与所述预 先存储的分组标识对应的预设分组标识是否一致;
第九确定模块, 用于当当前接收到的信号包中携带的分组标识与所述预先 存储的分组标识对应的预设分组标识不一致时, 确定需要存储状态信息;
第四存储模块, 用于根据接收当前接收的信号包之前接收的其它数据的处 理结果存储状态信息。
32、 一种源节点, 其特征在于, 所述源节点包括:
第一获取模块, 用于获取分布式流处理系统中的失效节点的节点信息; 第二获取模块, 用于根据所述失效节点的节点信息获取緩存的数据; 发送模块, 用于将緩存的数据作为重发数据发送至下游节点, 由所述下游 节点根据所述下游节点与所述失效节点是否相关来确定是否处理所述重发数 据。
33、 根据权利要求 32所述的源节点, 其特征在于, 所述第一获取模块, 用 于接收集中管理实体发送的失效节点的节点信息, 所述集中管理实体用于监控 所述分布式流处理系统中的各个节点的工作状况。
34、 根据权利要求 32所述的源节点, 其特征在于, 所述发送模块, 包括: 第一添加单元, 用于将所述重发数据对应的分组标识添加到信号包中; 第一发送单元, 用于将携带有分组标识的信号包发送至下游节点。
35、 根据权利要求 32所述的源节点, 其特征在于, 所述发送模块, 包括: 第二添加单元, 用于将緩存的数据作为重发数据, 并将所述重发数据对应 的分组标识添加到所述重发数据中;
第二发送单元, 用于将携带有分组标识的重发数据发送至下游节点。
36、 根据权利要求 34或 35所述的源节点, 其特征在于, 所述源节点, 还 包括:
分组编号模块, 用于根据接收数据的时间间隔或数据大小对接收到的数据 进行分组编号, 得到每个数据对应的分组标识。
37、 一种分布式流处理系统的容错系统, 其特征在于, 所述系统包括多个 工作节点和源节点;
其中, 所述多个工作节点中的每个工作节点如权利要求 19至 31 中任一项 权利要求所述的工作节点;
所述源节点如权利要求 32至 36中任一项权利要求所述的源节点。
PCT/CN2014/082991 2013-12-31 2014-07-25 分布式流处理系统的容错方法、节点及系统 WO2015101026A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14876066.3A EP2945314B1 (en) 2013-12-31 2014-07-25 Distributed flow processing system fault tolerance method, nodes and system
US15/044,077 US10205630B2 (en) 2013-12-31 2016-02-15 Fault tolerance method for distributed stream processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310754620.XA CN104038364B (zh) 2013-12-31 2013-12-31 分布式流处理系统的容错方法、节点及系统
CN201310754620.X 2013-12-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/044,077 Continuation US10205630B2 (en) 2013-12-31 2016-02-15 Fault tolerance method for distributed stream processing system

Publications (1)

Publication Number Publication Date
WO2015101026A1 true WO2015101026A1 (zh) 2015-07-09

Family

ID=51468961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/082991 WO2015101026A1 (zh) 2013-12-31 2014-07-25 分布式流处理系统的容错方法、节点及系统

Country Status (4)

Country Link
US (1) US10205630B2 (zh)
EP (1) EP2945314B1 (zh)
CN (1) CN104038364B (zh)
WO (1) WO2015101026A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640257B2 (en) * 2016-07-28 2023-05-02 Huawei Technologies Co., Ltd. Data processing method and apparatus

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10776247B2 (en) 2018-05-11 2020-09-15 International Business Machines Corporation Eliminating runtime errors in a stream processing environment
CN111597058B (zh) * 2020-04-17 2023-10-17 微梦创科网络科技(中国)有限公司 一种数据流处理方法及系统
CN117714011A (zh) * 2022-08-31 2024-03-15 华为技术有限公司 数据流处理方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1541466A (zh) * 2001-06-30 2004-10-27 ��˹��ŵ�� 用于在多跳无线网络中传递分组的设备和方法
CN101388831A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 数据传输方法、节点及网关
CN101635975A (zh) * 2009-08-04 2010-01-27 西北大学 无线传感器网络数据收集路由方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3432664B2 (ja) * 1996-02-14 2003-08-04 富士通株式会社 通信ノード及び障害復旧方法並びに通信ネットワーク
US7117273B1 (en) * 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US7698463B2 (en) * 2000-09-12 2010-04-13 Sri International System and method for disseminating topology and link-state information to routing nodes in a mobile ad hoc network
US7660239B2 (en) 2003-04-25 2010-02-09 Alcatel-Lucent Usa Inc. Network data re-routing
US7392319B2 (en) 2004-04-23 2008-06-24 International Business Machines Corporation Method and apparatus for failure resilient forwarding of data over a computer network
US7355975B2 (en) * 2004-04-30 2008-04-08 International Business Machines Corporation Method and apparatus for group communication with end-to-end reliability
EP2058988B1 (en) * 2007-09-13 2012-04-04 Huawei Technologies Co., Ltd. A method and system for route selecting in the ip multimedia subsystem
US8713393B2 (en) 2007-10-02 2014-04-29 Lantiq Deutschland Gmbh Retransmission and retransmission request in data communication systems
US7870425B2 (en) * 2007-11-23 2011-01-11 International Business Machines Corporation De-centralized nodal failover handling
CN101494565B (zh) 2008-01-24 2011-01-26 中国移动通信集团公司 在分布式无线接入系统中处理节点故障的方法
CN101355495B (zh) * 2008-09-11 2010-09-15 电子科技大学 基于容错容侵的ip可信路由实现方法
CN101777020B (zh) 2009-12-25 2012-12-05 北京讯鸟软件有限公司 一种用于分布式程序的容错方法和系统
CN101763321B (zh) 2010-02-24 2013-01-02 华为技术有限公司 数据容灾的方法、装置及系统
CN101945050B (zh) 2010-09-25 2014-03-26 中国科学院计算技术研究所 一种基于胖树结构的动态容错方法和系统
US9325757B2 (en) * 2010-11-30 2016-04-26 Adello Inc. Methods and systems for fault-tolerant distributed stream processing
US8667084B2 (en) * 2012-02-23 2014-03-04 Cisco Technology, Inc. Managing fate-sharing in shared-media communication networks
CN102833154B (zh) * 2012-07-30 2016-05-18 中国联合网络通信集团有限公司 基于分组传送网的节点保护方法、节点和系统
CN103024047A (zh) 2012-12-17 2013-04-03 江苏乐买到网络科技有限公司 一种数据容错方法
CN103049348B (zh) 2012-12-21 2016-03-16 四川川大智胜软件股份有限公司 多服务器化环境下数据容错存储的方法
US9319962B2 (en) * 2013-10-02 2016-04-19 Cisco Technology, Inc. Local path repair in a wireless deterministic network
US9317359B2 (en) * 2013-12-16 2016-04-19 Artesyn Embedded Computing, Inc. Reliable, low latency hardware and software inter-process communication channel for safety critical system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1541466A (zh) * 2001-06-30 2004-10-27 ��˹��ŵ�� 用于在多跳无线网络中传递分组的设备和方法
CN101388831A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 数据传输方法、节点及网关
CN101635975A (zh) * 2009-08-04 2010-01-27 西北大学 无线传感器网络数据收集路由方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2945314A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11640257B2 (en) * 2016-07-28 2023-05-02 Huawei Technologies Co., Ltd. Data processing method and apparatus

Also Published As

Publication number Publication date
CN104038364B (zh) 2015-09-30
EP2945314A1 (en) 2015-11-18
EP2945314A4 (en) 2016-04-20
EP2945314B1 (en) 2018-03-21
US10205630B2 (en) 2019-02-12
CN104038364A (zh) 2014-09-10
US20160164719A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
KR101908465B1 (ko) 결함 관리 방법, 엔티티 및 시스템
US9325757B2 (en) Methods and systems for fault-tolerant distributed stream processing
Keidar et al. Moshe: A group membership service for WANs
CN107612776B (zh) 一种通信连接检测方法及装置
CN107769943B (zh) 一种主备集群切换的方法和设备
US11341140B2 (en) Unique identification generation for records in a data streaming processing system
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
TW200907702A (en) Dynamically rerouting node traffic on a massively parallel computer system using hint bits
WO2015101026A1 (zh) 分布式流处理系统的容错方法、节点及系统
WO2018214887A1 (zh) 数据存储方法、存储服务器、存储介质及系统
CN110633168A (zh) 一种分布式存储系统的数据备份方法和系统
US20100322256A1 (en) Using distributed timers in an overlay network
Zhao et al. Low latency fault tolerance system
EP3031172B1 (en) Managing data feeds
CN107153526B (zh) 一种流式计算环境下的并行数据回流方法
WO2016101409A1 (zh) 数据倒换的方法、设备及系统
WO2019019607A1 (zh) 数据备份方法、装置及系统
Liu et al. SAND: A fault-tolerant streaming architecture for network traffic analytics
CN108154343B (zh) 一种企业级信息系统的应急处理方法及系统
US8738959B2 (en) Selective message loss handling in a cluster of replicated servers
WO2014075425A1 (zh) 数据处理方法、计算节点及系统
CN103731292A (zh) 一种实现服务器故障无缝恢复的容错方法
CN104516790A (zh) 一种分布式环境下检查点记录和恢复的系统及方法
WO2021000647A1 (zh) 一种业务保护方法、网络设备、分布式业务处理系统及存储介质
Matsumoto et al. A speculative Byzantine algorithm for P2P system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2014876066

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14876066

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE