分布式流计算系统和方法技术方案

技术编号:12659938 阅读:159 留言:0更新日期:2016-01-06 18:45
本发明专利技术涉及一种分布式流计算系统和方法。所述系统包括接口模块、计算控制模块和任务跟踪模块;所述接口模块用于接收业务请求;所述计算控制模块用于从全局配置层获取与所述业务请求对应的计算拓扑,根据所述计算拓扑对所述业务请求进行处理得到所述业务请求的执行情况,并将所述业务请求的执行情况上报给所述任务跟踪模块;所述任务跟踪模块用于将所述业务请求的执行情况发送给所述接口模块;所述接口模块还用于根据所述业务请求的执行情况确定是否重发所述业务请求。上述分布式流计算系统和方法,业务数据并非存储在计算控制模块内,即使某个计算控制模块中数据丢失,该业务请求可以重发进行计算,提高了分布式流计算的容错性。

【技术实现步骤摘要】

本专利技术涉及网络应用领域,特别是涉及一种。
技术介绍
计算系统主要分为offlineComputation离线计算、OnlineComputation在线计 算、NearlineComputation近似在线计算。离线计算对算法的复杂度和数据量限制较少, 适用于时间要求比较低,大规模海量数据基础上的复杂计算的场景,hadoop是典型离线计 算系统,主要用于海量数据的统计和挖掘,hadoop适用于大数据小计算场景,不适合计算复 杂度太高的算法;在线计算主要提供实时服务,它面向算法有一定复杂度但数据量不大的 场景;Nearline计算是处于离线计算和在线计算之间的一种计算状态,部分不需要立刻应 答,但计算量又比较大的服务可以采用Nearline计算。 分布式RPC(RemoteProcedureCallProtocol,远程过程调用协议)系统属于 OnlineComputation在线计算系统的一种。传统的分布式流计算系统能够实现实时分布 式流计算,但由于该系统的数据放在内存中,如果某个节点failover(失效转移),当前 failover节点内存中的数据会全部丢失,即当前请求会失败,且没有可靠的机制保证数据 消息的完全处理,故传统的分布式流计算系统的容错性低。
技术实现思路
基于此,有必要针对传统的分布式流计算系统的容错性低的问题,提供一种高容 错的分布式流计算方法和系统。 -种分布式流计算系统,包括接口模块、计算控制模块和任务跟踪模块; 所述接口模块用于接收业务请求,并将所述业务请求发送给计算控制模块和任务 跟踪t旲块; 所述计算控制模块用于根据所述业务请求从全局配置层获取与所述业务请求对 应的计算拓扑,根据所述计算拓扑对所述业务请求进行处理得到所述业务请求的执行情 况,并将所述业务请求的执行情况上报给所述任务跟踪模块; 所述任务跟踪模块用于将所述业务请求的执行情况发送给所述接口模块; 所述接口模块还用于根据所述业务请求的执行情况确定是否重发所述业务请求。 一种分布式流计算方法,包括以下步骤: 接收业务请求; 从全局配置层获取与所述业务请求对应的计算拓扑; 根据所述计算拓扑对所述业务请求进行处理得到所述业务请求的执行情况; 根据所述业务请求的执行情况确定是否重发所述业务请求。 上述,通过跟踪业务请求的执行情况,并根据执行情况 确定是否重发该业务请求,业务数据并非存储在计算控制模块内,即使某个计算控制模块 中数据丢失,该业务请求可以重发进行计算,提高了分布式流计算的容错性。【附图说明】 图1为分布式流计算系统的通用框架示意图; 图2为本专利技术的一种分布式流计算系统的结构框图; 图3为一个实施例中分布式流计算系统的结构框架图; 图4为一个实施例中计算单元处理消息的示意图; 图5为一个实施例中分布式流计算方法的流程示意图。【具体实施方式】 为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并 不用于限定本专利技术。 图1为分布式流计算系统的通用框架示意图。如图1所示,分布式RPC的业务请 求通过接入层进入分布式流计算框架内部,分布式流计算框架根据请求类型,自动调用该 请求类型的计算拓扑,接入和使用分布式流计算系统的前提时业务算法逻辑可分层,且其 中一层或几层的计算可并行化,满足该前提条件的分布式流计算能更好发挥作用。 图2为本专利技术的一种分布式流计算系统的结构框图。如图2所示,一种分布式流 计算系统,包括接口模块210、任务跟踪模块220和计算控制模块230。其中: 接口模块210用于接收业务请求,并将该业务请求发送给计算控制模块230和任 务跟踪t吴块220。 本实施例中,接口模块210用于接收业务请求,对该业务请求解析得到key(关键 字),根据key从全局配置层中获取所需转发到的节点地址,以及将所述业务请求发送至任 务跟踪模块220和该节点地址所对应的计算控制模块230。 具体的,接口模块210接收业务请求后,将业务请求发送给任务跟踪模块220,由 任务跟踪模块220对业务请求分配一个taskid(taskidentity,任务标识)。接口模块 210还对业务请求进行解析得到key,根据该key到全局配置层中拉取需要转发到的节点 IP(InternetProtocol,网络之间互连的协议)、端口等,并向任务跟踪模块220上报一条消 息告知任务跟踪模块220跟踪该业务请求,然后将该业务请求发送给计算控制模块230。其 中,节点IP是指计算控制模块230所在的机器的IP地址,端口是指计算控制模块230的通 信端口。在一台机器上可有一个计算控制模块或多个计算控制模块。本实施例中,在一台 机器上有一个计算控制模块。 其中,全局配置层用于保存分布式RPC请求调用的计算拓扑的相关信息、接口模 块210、任务跟踪模块220和计算控制模块230的注册信息以及分布式RPC计算单元的分布 信息,以保证分布式流计算系统配置信息的一致性和安全性。计算拓扑的相关信息包括几 层计算单元、启动每层计算单元的命令、每层计算可以并行多少个进程。 此外,全局配置层提供根据key获取节点IP的函数接口,一般根据key采用hash 映射的形式获取节点IP。 计算控制模块230用于根据该业务请求从全局配置层获取与该业务请求对应的 计算拓扑,根据该计算拓扑对该业务请求进行处理得到该业务请求的执行情况,并将该业 务请求的执行情况上报给任务跟踪模块220。 具体的,业务请求中包含业务ID(标识),全局配置层预先建立了业务ID和计算拓 扑的对应关系,全局配置层根据计算控制模块230中提供的业务请求中的业务ID从业务ID 和计算拓扑的对应关系中获取相应的计算拓扑,并将计算拓扑返回给计算控制模块230。 业务请求的执行情况包括业务请求执行是否成功的状态。该业务请求执行是否成 功的状态包括执行成功、执行失败和超时的状态。 任务跟踪模块220用于将该业务请求的执行情况发送给接口模块210。 接口模块210还用于根据该业务请求的执行情况确定是否重发该业务请求。 具体的,业务请求执行不成功时,接口模块210重发该业务请求。 上述分布式流计算系统,通过任务跟踪模块跟踪业务请求的执行情况,并将执行 情况反馈给接口模块,接口模块根据执行情况确定是否重发该业务请求,业务数据并非存 储在计算控制模块内,即使某个计算控制模块中数据丢失,该业务请求可以重发进行计算, 提高了分布式流计算的容错性。 在一个实施例中,计算控制模块230还用于调用该计算拓扑中的各层的计算单元 对该业务请求进行处理,接收各层的计算单元对该业务请求的执行情况,并将该业务请求 的执行情况上报给任务跟踪模块220。 具体的,计算控制模块230拉起计算拓扑中的各层的计算单元采用exec函数以子 进程形式启动计算拓扑的各层的计算单元。只有所有层的计算单元的执行情况中执行均成 功,整个业务请求的处理才为执行成功。通过任务跟踪模块对每一层计算单元的执行情况 进行监控,间接对业务请求的执行情况进行可靠跟踪,从而提供可靠的分布式RPC请求服 务。 上一层的计算控制模块230将数据消息传输给该上一层本文档来自技高网...

【技术保护点】
一种分布式流计算系统,其特征在于,包括接口模块、计算控制模块和任务跟踪模块;所述接口模块用于接收业务请求,并将所述业务请求发送给计算控制模块和任务跟踪模块;所述计算控制模块用于根据所述业务请求从全局配置层获取与所述业务请求对应的计算拓扑,根据所述计算拓扑对所述业务请求进行处理得到所述业务请求的执行情况,并将所述业务请求的执行情况上报给所述任务跟踪模块;所述任务跟踪模块用于将所述业务请求的执行情况发送给所述接口模块;所述接口模块还用于根据所述业务请求的执行情况确定是否重发所述业务请求。

【技术特征摘要】

【专利技术属性】
技术研发人员:庄广安
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1