一种高可用的流式处理系统及方法技术方案

技术编号:13745566 阅读:105 留言:0更新日期:2016-09-23 20:25
本发明专利技术公开了一种高可用的流式处理系统及方法,其中,该系统包括:上游应用系统,用于根据上游业务应用的进程,实时产生原始数据,逐条发送至接收装置;接收装置,用于将原始数据转发至消息中间件装置的消息队列;消息中间件装置,用于以消息队列的形式为流式处理拓扑装置缓存数据;流式处理拓扑装置,用于处理原始数据的数据流,生成数据结果;下游应用系统,对应业务场景,用于根据对数据结果进行后续处理。

【技术实现步骤摘要】

本专利技术涉及信息处理领域,尤指一种高可用的流式处理系统及方法
技术介绍
“流数据”名词最早出现在通信领域,随着信息网络技术的发展,其定义和应用范围在不断扩展。在数据分析、风险监控和网络安全等领域,各类业务系统产生的数据序列快速到达、可持续生成、无限增长,我们亦称之流数据。然而,传统的集中式处理IT架构在处理此类数据时,面临着几大难题。第一,企业用户对流数据的新增了实时分析处理的需求,即数据从上游应用系统业务生成到下游应用系统处理完毕总共花费的时间不超过秒级。第二,传统主机由于其单节点集中式处理的特性,存储能力和处理能力受限,在业务量高峰期难以承载高吞吐量。第三,由于高性能主机价格及运维费用高昂,企业承受巨大的前期投资及后期维护等经济性成本的重压。综上所述,企业IT架构纷纷向廉价的分布式服务器处理技术转型。分布式流式数据处理技术结合分布式服务器集群部署以及实时流数据处理技术,具有成本低廉、集群可弹性伸缩、数据处理吞吐量大以及数据处理时效性强等显著优点。但和集中式处理IT架构相比,由于分布式节点的故障率增大,分布式架构在负载均衡、故障恢复、数据恢复等方面又面临着巨大的挑战。此外,传统的数据处理系统与上层应用的耦合度过高,难以兼容多种数据分析处理场景,若需修改或新增业务模块,需要同时修改底层数据处理框架。因此,企业亟需一种改进的高可用的流式数据处理系统,在稳定运行的前提下,不仅做到对数据的快速处理,同时能及时恢复故障节点和丢失的数据,并且其底层处理框架可支持多种业务场景。
技术实现思路
为应对大规模处理环境中发生的各种问题,本专利技术提出了一种高可用的流式处理
系统及方法。本专利技术设计实现了拓扑的分布式流数据计算框架,克服了数据在传递和处理过程中因磁盘I/O效率低下的问题,通过在每个数据流处理节点使用本地内存,有效保证了数据实时处理性能;本专利技术改进了传统数据处理方法难以兼容多种数据分析处理场景的问题,将基础框架模块与具体业务逻辑模块进行松耦合设计,从而对复杂多样的业务模型提供坚实的底层支持;本专利技术克服了传统数据处理系统单点负载过大的问题,采用去中心化的架构设计,设计多个节点并发地进行相同业务处理,合理利用集群计算资源;本专利技术克服了因分布式工作节点故障引发的集群工作不稳定、数据丢失等难点,利用Zookeeper技术实现了故障自动恢复机制,同时,利用Spark内存快速计算实现了丢失数据的准实时查找。具体的,本专利技术提出的高可用的流式处理系统包括:上游应用系统,用于根据上游业务应用的进程,实时产生原始数据,逐条发送至接收装置;接收装置,用于将原始数据转发至消息中间件装置的消息队列;消息中间件装置,用于以消息队列的形式为流式处理拓扑装置缓存数据;流式处理拓扑装置,用于处理原始数据的数据流,生成数据结果;下游应用系统,对应业务场景,用于根据对数据结果进行后续处理。进一步的,所述流式处理拓扑装置包括:采集组件、模型组件、转发组件,每个组件对应多个工作节点;其中,所述采集组件,用于从所述消息中间件装置的消息队列中读取上游应用系统的原始数据记录,将原始数据转化为内部组件的工作节点能操作的MessageObject消息对象格式,根据路由表设定将转化后的数据转发给下游的模型组件;模型组件,一条数据处理链路中串行存在一个或多个模型组件,每个模型组件用于将转化后的数据按上层应用系统指定的业务逻辑进行处理,生成数据结果,转发至下游模型组件或转发组件,如果一条数据处理链路有多个模型组件,则按序依次对转化后的数据进行处理;转发组件,用于将数据结果转发至对应的下游应用系统。进一步的,该系统还包括:心跳探测装置,用于周期性的接收来自流式处理拓扑装置的工作节点的心跳信息,将已发送心跳的工作节点列表转发至系统守卫装置;系统守卫装置,用于接收心跳探测装置的发送的列表信息,监控流式处理拓扑装置的运行状况;还用于重启故障工作节点,恢复其正常工作;还用于以细粒度模式恢复系统运行中丢失的数据。进一步的,该系统还包括:系统信息持久化装置,用于管理维护系统中的相关组件和工作节点的信息,以及记录各个工作节点的运行状态,以及缓存待恢复的数据记
录。进一步的,该系统还包括:海量日志管理装置,用于收集、存储框架日志,供后续挖掘使用;日志对账装置,用于找到在处理过程中丢失的数据记录,通过基于对账机制的挖掘算法,定期读取海量日志管理装置中框架日志,最终将将丢失的数据记录信息写入系统信息持久化装置用于恢复处理。进一步的,所述系统守卫装置包括监控管理单元、故障恢复单元、数据恢复单元;其中,监控管理单元,用于监测系统中各个组件的工作节点的运行状态,周期性地接收来自心跳探测装置的消息,消息内容包括在本周期内已成功发送心跳的工作节点列表,监控管理单元将该工作节点列表写入系统信息持久化装置中;故障恢复单元,用于周期性地将系统信息持久化装置中记录的成功发送心跳的工作节点列表与流式处理拓扑装置的全体工作节点进行比对,寻找没有发送心跳的工作节点,对于预设的时间区间内没有及时发送心跳的工作节点,故障恢复单元判断该工作节点发生故障,将故障工作节点信息写入系统信息持久化装置,并从系统信息持久化装置中找到该故障节点的服务器IP端口信息和配置信息,在目的地服务器进行远程重启;数据恢复单元,用于定期从系统信息持久化装置中读取系统运行过程中丢失的数据记录,并进行逐条细粒度恢复。进一步的,所述数据恢复单元,用于读取系统信息持久化装置中数据丢失时的组件ID,并按既定策略确定数据重新发送给该组件的某个工作节点ID,找到该工作节点的服务器IP和端口;当所述数据恢复单元读取到丢失的数据记录,将其由文本重新封装成消息对象,根据发送目的地服务器IP和端口重新发送至流式处理拓扑装置的对应组件工作节点。本专利技术还提出了一种高可用的流式处理方法,该方法包括:步骤S1,上游应用系统实时产生原始数据,逐条发送至接收装置;步骤S2,接收装置将原始数据转发至消息中间件装置的消息队列,消息中间件装置以消息队列的形式为流式处理拓扑装置缓存数据;步骤S3,流式处理拓扑装置启动,采集组件、模型组件、转发组件的工作节点进行初始化工作,在内存中加载工作组件转发路由信息和数据映射信息公共数据;步骤S4,心跳探测装置、系统守卫装置进行实时保卫系统正常运行,心跳探测装置监控系统所有工作节点,当系统守卫装置监测到工作节点发生故障,进行远程
重启;步骤S5,流式处理拓扑装置的采集组件从消息中间件装置的消息队列中读取并处理原始数据转变为消息对象,在流式处理拓扑装置中根据工作组件转发路由信息和数据映射信息传递至下游的一个或多个模型组件;步骤S6,每条数据处理链路分支的模型组件以上层应用系统指定的业务逻辑对数据记录进行处理,根据工作组件转发路由信息和数据映射信息转发至下游模型组件或转发组件;每条数据处理链路分支存在一个或多个模型组件,最后一个模型组件将数据转发到转发组件;步骤S7,转发组件将数据转发到下游应用系统;在步骤S5、S6、S7中所有组件的工作节点会实时地在工作日志中记录当前的处理状态,用于后续数据恢复组件查找丢失的数据记录;步骤S8,日志对账装置定期查找在步骤S5、S6、S7中转发失败的数据记录信息,由系统守卫装本文档来自技高网
...

【技术保护点】
一种高可用的流式处理系统,其特征在于,该系统包括:上游应用系统,用于根据上游业务应用的进程,实时产生原始数据,逐条发送至接收装置;接收装置,用于将原始数据转发至消息中间件装置的消息队列;消息中间件装置,用于以消息队列的形式为流式处理拓扑装置缓存数据;流式处理拓扑装置,用于处理原始数据的数据流,生成数据结果;下游应用系统,对应业务场景,用于根据对数据结果进行后续处理。

【技术特征摘要】
1.一种高可用的流式处理系统,其特征在于,该系统包括:上游应用系统,用于根据上游业务应用的进程,实时产生原始数据,逐条发送至接收装置;接收装置,用于将原始数据转发至消息中间件装置的消息队列;消息中间件装置,用于以消息队列的形式为流式处理拓扑装置缓存数据;流式处理拓扑装置,用于处理原始数据的数据流,生成数据结果;下游应用系统,对应业务场景,用于根据对数据结果进行后续处理。2.根据权利要求1所述的高可用的流式处理系统,其特征在于,所述流式处理拓扑装置包括:采集组件、模型组件、转发组件,每个组件对应多个工作节点;其中,所述采集组件,用于从所述消息中间件装置的消息队列中读取上游应用系统的原始数据记录,将原始数据转化为内部组件的工作节点能操作的MessageObject消息对象格式,根据路由表设定将转化后的数据转发给下游的模型组件;模型组件,一条数据处理链路中串行存在一个或多个模型组件,每个模型组件用于将转化后的数据按上层应用系统指定的业务逻辑进行处理,生成数据结果,转发至下游模型组件或转发组件,如果一条数据处理链路有多个模型组件,则按序依次对转化后的数据进行处理;转发组件,用于将数据结果转发至对应的下游应用系统。3.根据权利要求2所述的高可用的流式处理系统,其特征在于,该系统还包括:心跳探测装置,用于周期性的接收来自流式处理拓扑装置的工作节点的心跳信息,将已发送心跳的工作节点列表转发至系统守卫装置;系统守卫装置,用于接收心跳探测装置的发送的列表信息,监控流式处理拓扑装置的运行状况;还用于重启故障工作节点,恢复其正常工作;还用于以细粒度模式恢复系统运行中丢失的数据。4.根据权利要求3所述的高可用的流式处理系统,其特征在于,该系统还包括:系统信息持久化装置,用于管理维护系统中的相关组件和工作节点的信息,以及
\t记录各个工作节点的运行状态,以及缓存待恢复的数据记录。5.根据权利要求4所述的高可用的流式处理系统,其特征在于,该系统还包括:海量日志管理装置,用于收集、存储框架日志,供后续挖掘使用;日志对账装置,用于找到在处理过程中丢失的数据记录,通过基于对账机制的挖掘算法,定期读取海量日志管理装置中框架日志,最终将将丢失的数据记录信息写入系统信息持久化装置用于恢复处理。6.根据权利要求4所述的高可用的流式处理系统,其特征在于,所述系统守卫装置包括监控管理单元、故障恢复单元、数据恢复单元;其中,监控管理单元,用于监测系统中各个组件的工作节点的运行状态,周期性地接收来自心跳探测装置的消息,消息内容包括在本周期内已成功发送心跳的工作节点列表,监控管理单元将该工作节点列表写入系统信息持久化装置中;故障恢复单元,用于周期性地将系统信息持久化装置中记录的成功发送心跳的工作节点列表与流式处理拓扑装置的全体工作节点进行比对,寻找没有发送心跳的工作节点,对于预设的时间区间内没有及时发送心跳的工作节点,故障恢复单元判断该工作节点发生故障,将故障工作节点信息写入系统信息持久化装置,并从系统信息持久化装置中找到该故障节点的服务器IP端口信息和配置信息,在目的地服务器进行远程重启;数据恢复单元,用于定期从系统信息持久化装置中读取系统运行过程中丢失的数据记录,并进行逐条细粒度恢复。7.根据权利要求6所述的高可用的流式处理系统,其特征在于,所述数据恢复单元,用于读取系统信息持久化装置中数据丢失时的组件ID,并按既定策略确定数据重新发送给该组件的某个工作节点ID,找到该工作节点的服...

【专利技术属性】
技术研发人员:袁一沈贇陶玮张学舟
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1