流式计算方法、装置、设备以及存储介质制造方法及图纸

技术编号:28977828 阅读:22 留言:0更新日期:2021-06-23 09:23
本发明专利技术实施例公开了一种流式计算方法、装置、设备以及存储介质,涉及计算机技术领域。所述方法包括:每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断该数据是否需要进行延时处理;若需要进行延时处理,则将该数据的信息注册到该数据关联的工人节点的延时队列;延时处理线程根据配置的时间周期,定时从延时队列中依次获取数据信息并进行检查,确认数据是否能处理成功;若数据能够处理成功,则处理数据并从延时队列中删除该数据节点,否则等待下一个周期的处理。本发明专利技术实施例提供一种流式计算方法、装置、设备以及存储介质,以解决多个实时数据源的数据不同步问题。

【技术实现步骤摘要】
流式计算方法、装置、设备以及存储介质
本专利技术实施例涉及计算机
,尤其涉及一种流式计算方法、装置、设备以及存储介质。
技术介绍
随着现代业务对实时数据要求越来越高,流式计算技术因其在实时性的性能优势,越来越受到企业实时架构的重视。当前流式数据虽然对于实时数据需求起到非常重要的作用,但也存在难以解决的困难,即数据实时关联的问题:在传统的数据处理,往往避免不了多个数据集合的数据需要进行关联计算的场景。最典型的就是关系型数据库常见的多表JOIN操作或者where条件下的多表联合计算。而利用流式技术处理实时数据时,如果实时数据中需要进行关联计算的数据来自于多个实时数据源,则因为实时数据源的数据难以同步,可能会导致数据关联失败的结果。对于关系型数据库来说由于进行的是数据全量计算,因此只要通过多次重复执行计算规则,即可以达到数据结果的最终一致,此问题可以得到解决。但是对于流式计算技术,由于处理的数据是增量数据,一旦流式计算过程结束,则完成计算的数据则不会再次进行计算,否则容易引起数据重复计算的问题,因此难以解决这种多个实时数据源的数据不同步问题。
技术实现思路
本专利技术实施例提供一种流式计算方法、装置、设备以及存储介质,以解决多个实时数据源的数据不同步问题。第一方面,本专利技术实施例提供了一种流式计算方法,所述方法包括:为待处理的目标流式计算任务开启至少一个工作进程;控制所述至少一个工作进程在zookeeper分布式应用程序协调服务上进行竞争,抢注所述目标流式计算任务的领导节点,抢注成功的工作进程成为领导节点,并在zookeeper建立领导管理目录;控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点;领导节点负责在zookeeper初始化所述目标流式计算任务的延时队列初始根目录,所有工人节点在根目录下创建各自节点对应的延时队列,在所述领导管理目录记录各自管理的延时队列信息;工人节点启动延时处理线程池,为后续的延时任务做准备;每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断该数据是否需要进行延时处理;若需要进行延时处理,则将该数据的信息注册到该数据关联的工人节点的延时队列;延时处理线程根据配置的时间周期,定时从延时队列中依次获取数据信息并进行检查,确认数据是否能处理成功;若数据能够处理成功,则处理数据并从延时队列中删除该数据节点,否则等待下一个周期的处理。第二方面,本专利技术实施例提供了一种流式计算装置,所述装置包括:进程开启模块,用于为待处理的目标流式计算任务开启至少一个工作进程;节点竞争模块,用于控制所述至少一个工作进程在zookeeper分布式应用程序协调服务上进行竞争,抢注所述目标流式计算任务的领导节点,抢注成功的工作进程成为领导节点,并在zookeeper建立领导管理目录;节点注册模块,用于控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点;队列创建模块,用于领导节点负责在zookeeper初始化所述目标流式计算任务的延时队列初始根目录,所有工人节点在根目录下创建各自节点对应的延时队列,在所述领导管理目录记录各自管理的延时队列信息;线程启动模块,用于工人节点启动延时处理线程池,为后续的延时任务做准备;延时判断模块,用于每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断该数据是否需要进行延时处理;若需要进行延时处理,则将该数据的信息注册到该数据关联的工人节点的延时队列;延时处理模块,用于延时处理线程根据配置的时间周期,定时从延时队列中依次获取数据信息并进行检查,确认数据是否能处理成功;若数据能够处理成功,则处理数据并从延时队列中删除该数据节点,否则等待下一个周期的处理。第三方面,本专利技术实施例还提供了一种设备,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本实施例中任一所述的流式计算方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本实施例中任一所述的流式计算方法。本专利技术实施例通过基于Zookeeper设计的轻量级的实时数据延时处理机制,能够在付出较低的资源代价的情况下,提供精确度更高的实时数据处理能力,从而解决个实时数据源的数据不同步问题。附图说明图1为本专利技术实施例一提供的一种流式计算方法的流程图;图2是本专利技术实施例二提供的一种流式计算方法的流程图;图3是本专利技术实施例三提供的一种流式计算方法的流程图;图4是本专利技术实施例四提供的一种流式计算装置的结构示意图;图5为本专利技术实施例五提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种流式计算方法的流程图。本实施例可适用于对来自于多个实时数据源中的实时数据进行关联计算的的情况。该方法可以由一种流式计算装置来执行,该装置可以由软件和/或硬件的方式实现。参见图1,本申请实施例提供的流式计算方法包括:为待处理的目标流式计算任务开启至少一个工作进程。其中,目标流式计算任务是待处理的流式计算任务。工作进程是指处理目标流式计算任务的进程。进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位控制所述至少一个工作进程在zookeeper上进行竞争,抢注所述目标流式计算任务的领导节点,抢注成功的工作进程成为领导节点,并在zookeeper建立领导管理目录。其中,领导节点是指具有管理权的节点,也称leader节点。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点。其中,工人节点是指听从领导节点管理的节点,也称worker节点。领导节点负责在zookeeper初始化所述目标流式计算任务的延时队列初始根目录,所有工人节点在根目录下创建各自节点对应的延时队列,在所述领导管理目录记录各自管理的延时队列信息。工人节点启动延时处理线程池,为后续的延时任务做准备。每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断本文档来自技高网...

【技术保护点】
1.一种流式计算方法,其特征在于,所述方法包括:/n为待处理的目标流式计算任务开启至少一个工作进程;/n控制所述至少一个工作进程在zookeeper分布式应用程序协调服务上进行竞争,抢注所述目标流式计算任务的领导节点,抢注成功的工作进程成为领导节点,并在zookeeper建立领导管理目录;/n控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点;/n领导节点负责在zookeeper初始化所述目标流式计算任务的延时队列初始根目录,所有工人节点在根目录下创建各自节点对应的延时队列,在所述领导管理目录记录各自管理的延时队列信息;/n工人节点启动延时处理线程池,为后续的延时任务做准备;/n每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断该数据是否需要进行延时处理;若需要进行延时处理,则将该数据的信息注册到该数据关联的工人节点的延时队列;/n延时处理线程根据配置的时间周期,定时从延时队列中依次获取数据信息并进行检查,确认数据是否能处理成功;若数据能够处理成功,则处理数据并从延时队列中删除该数据节点,否则等待下一个周期的处理。/n

【技术特征摘要】
1.一种流式计算方法,其特征在于,所述方法包括:
为待处理的目标流式计算任务开启至少一个工作进程;
控制所述至少一个工作进程在zookeeper分布式应用程序协调服务上进行竞争,抢注所述目标流式计算任务的领导节点,抢注成功的工作进程成为领导节点,并在zookeeper建立领导管理目录;
控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点;
领导节点负责在zookeeper初始化所述目标流式计算任务的延时队列初始根目录,所有工人节点在根目录下创建各自节点对应的延时队列,在所述领导管理目录记录各自管理的延时队列信息;
工人节点启动延时处理线程池,为后续的延时任务做准备;
每个工人节点在流式计算过程中,若检测到进行实时关联计算失败的数据,则判断该数据是否需要进行延时处理;若需要进行延时处理,则将该数据的信息注册到该数据关联的工人节点的延时队列;
延时处理线程根据配置的时间周期,定时从延时队列中依次获取数据信息并进行检查,确认数据是否能处理成功;若数据能够处理成功,则处理数据并从延时队列中删除该数据节点,否则等待下一个周期的处理。


2.根据权利要求1所述的方法,其特征在于,所述控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点之后,所述方法还包括:
工人节点监控领导节点在zookeeper注册的临时节点的生存状态;
若监控到领导节点下线,则重新竞争领导节点的选举。


3.根据权利要求1所述的方法,其特征在于,所述控制包括所述领导进程在内的所有工作进程在所述领导管理目录上注册成为所述目标流式计算任务的工人节点之后,所述方法还包括:
领导节点定期检查所有延时队列是否由工人节点负责管理;
若检测到目标延时队列没有工人节点处理,则继续检查所述目标延时队列是否为空;
若所述目标延时队列为空,则清理该延时队列;否则,根据当前工人节点的负载情况,选择接管的工人节点,并向该工人节点发送接管指令;
该工人节点根据本节点的负载处理信息确定是否接管所述目标延时队列。


4.根据权利要求3所述的方法,其特征在于,所述该工人节点根据本节点的负载处理信息确定是否接管所述目标延时队列之后,所述方法还包括:
若接管,则该工人节点向所述领导管理目录注册所述目标延时队列的接管信息,并继续处理所述目标延时队列的遗留实时数据;
其中所述目标延时队列不再写入新数据,直到所述目标延时队列数据全部处理完毕;
在所述目标延时队列数据全部处理完毕后,工人节点向所述领导节点发送指令,以指示所述领导节点删除所述目标延时队列。


5.根据权利要求3所述的方法,其特征在于,所述接管工人节点根据本节点的负载处理信息确定是否接管所述目标延时队列之后,所述方法还包括:
若无工人节点接管所述目标延时队列,则所述领导节点定期返回执行所述根据当前工人节点的负载情况,选择接管工人节点,并向...

【专利技术属性】
技术研发人员:杨全文
申请(专利权)人:中信银行股份有限公司
类型:发明
国别省市:北京;11

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

1