一种基于队列的银行流计算业务系统中检查点快速持久化方法技术方案

技术编号:34533647 阅读:11 留言:0更新日期:2022-08-13 21:27
本发明专利技术公开了一种基于队列的银行流计算业务系统中检查点快速持久化方法。在银行流计算业务中,很多时候交易量会激增,需要处理的数据量也大大增加,超出业务系统中节点的承载能力。新节点恢复业务系统中原节点的工作的依据是原节点的计算状态记录,业务系统采用流计算的方式对数据进行处理,因此对业务系统当前流计算状态进行快照保存并作持久化处理是必要的。周期性快照的处理方式有两个缺点:造成计算停顿、产生大量非必须的快照信息。针对上述处理方法的缺陷,该系统使用的方法是一种以优化后快速的检查点算法为基线的轻量级快照数据处理引擎,高效的管理整个节点迁移系统,便于计算状态在两个节点间的相互迁移,且资源占用较少,迁移代价较小。迁移代价较小。迁移代价较小。

【技术实现步骤摘要】
一种基于队列的银行流计算业务系统中检查点快速持久化方法


[0001]本专利技术属于分布式计算领域,尤其涉及一种基于队列的银行流计算业务系统中检查点快速持久化方法。

技术介绍

[0002]在银行风控等实时性要求较高的流计算业务场景中,要求系统的计算性能可以满足大量持续高强度的数据运算,并做到低延时与高吞吐的目标。除此之外,在这些场景中,除了实时性的要求以外,对容错率的要求也很高,较小的错误也可能会导致实际应用中很大的问题。
[0003]银行流计算业务作为银行重要的作业场景之一,采用流计算的架构对交易数据进行处理。在复杂的业务场景中,往往涉及到交易量突然激增的状况,此时待处理数据比正常情况多出较多倍数,如果仍然使用承载能力较差的节点进行处理,则会引起系统节点崩溃,从而引发一系列数据无法计算、不一致的状况,造成无法估量的损失。而这样的情况可以通过对流计算状态进行快照并做持久化处理的方式避免,即在预估此后一段时间业务系统中会触发较多操作,引起计算需求增大的前提下,进行人工操作,对银行流计算业务系统发出信号,使系统中的节点记录好当前的流计算状态并进行存储,从而对快照做持久化处理,便于之后将当前的计算状态迁移至承载能力更强的节点中。同时,在计算需求显著减少后,为了避免资源的浪费,可以利用同样的步骤,将业务系统的流计算状态迁移至承载能力稍弱的节点中。
[0004]目前涉及银行流计算业务系统中节点迁移场景下的解决方案要求对操作状态进行持续的全局快照,这样的方式有两个严重影响系统性能的缺陷:
[0005]1)每一次全局快照均会使银行流计算业务系统中的所有计算进程停止运行,所有通道消息停止传输,造成整个流计算过程的停滞,以达到获取全局一致性状态的目的。这样强制打断系统运行的过程通常会导致系统性能降低;
[0006]2)银行流计算业务系统某一时刻的全局状态是指其所有进程和通道的状态组合,全局快照算法会将对全局状态进行记录,即将所有的通道传输记录以及未处理的消息作为快照的一部分,使得快照过大,包含的冗余信息过多,导致系统中各个节点的计算性能下降。
[0007]综上所述,目前银行流计算业务系统在判断交易量激增后,进行节点迁移的场景中必须使用快照与持久化技术来进行恢复处理,而其采用的全局快照技术会对节点的计算性能以及实时性牺牲较大,保证数据正确性和一致性的同时不能保证系统中节点的快速计算能力。因此需要一类轻量级、对系统性能无较大影响的快照数据处理技术应用于银行流计算业务系统中,保证流计算状态能快速稳定的记录下来并持久化的保存,以便于后续从节点保存的状态下恢复业务系统的计算。

技术实现思路

[0008]针对上述提到的银行流计算业务系统中,节点间流计算状态的迁移场景下采用全局快照技术作为迁移恢复的基础算法而产生的一系列操作和管理的问题,本专利技术提出了一种基于队列的检查点快速持久化技术方法,采用优化的快照算法作为基线,实现了节点计算状态迁移场景下轻量级的快照数据处理引擎与恢复机制,在必要的节点状态迁移中能快速稳定的应对。
[0009]本专利技术通过以下技术方案来实现,一种基于队列的银行流计算业务系统中检查点快速持久化方法,该方法包括如下步骤:
[0010](1)在银行流计算业务系统的操作量增加之前,人为向业务系统中需要进行流计算状态迁移的节点发出快照开始的指令,记录当前进行流计算节点的状态;
[0011](2)需要进行流计算状态迁移的节点在接收到快照的信号后,触发检查点机制:银行流计算业务系统的Kafka中对应Topic的数据、信息、消息传输均停止,业务系统中进行流计算的节点开始进行自身计算状态的快照操作,记录下Kafka中对应Topic的偏移量值以及节点当前计算状态;
[0012](3)基于Kafka消息队列先进先出的规则,将执行快照操作后的银行流计算业务系统中节点的流计算状态相关数据记录,如计算过程中的中间值等,按Kafka消息队列中的顺序依次存入HDFS文件系统中进行持久化保存;存储结束后,获取HDFS文件系统中的流计算状态相关数据的地址,将该地址与Kafka中当前Topic的偏移量值作为数据对存入Oracle数据库中,业务系统中的当前执行快照操作后的节点使用指针指向Oracle数据库中的数据对;
[0013](4)对指针做切换操作:流计算状态迁移的目标节点使用指针指向Oracle数据库中的数据对,利用记录的Topic偏移量值重新开始消费Kafka中对应的Topic,读取HDFS文件系统中的流计算状态相关数据,对业务系统中原节点的流计算状态进行恢复,并取消原节点指向Oracle数据库中该条数据对的指针。
[0014]进一步地,流计算状态迁移的节点开始进行自身计算状态的快照操作,具体为:记录下上一次快照至此时与节点相关的数据处理的中间计算记录以及此次快照当前Topic的偏移量值。便于节点通过偏移量值开始重新消费Kafka对应的Topic,结合快照存储的数据中间记录,从而节点能够在迁移后恢复流计算状态至原节点快照时刻的状态,防止误操作、多操作数据记录,以保证计算状态的一致性。
[0015]本专利技术提供了以下有益的效果:
[0016](1)本专利技术方法采用交互的方式,人工发出信号,节点再执行快照算法,并进行快照的持久化保存操作。这样避免了快照持续性影响节点的计算过程。
[0017](2)在银行流计算业务系统中节点计算状态迁移的场景中,如何快速对业务系统的全局状态进行快照是一项重要的流程,也直接影响了整个方法的性能。本专利技术提出的方法采用的并非全局快照,而是针对计算任务的抽象模型优化的快照算法,极大的降低了业务系统对全局状态进行快照的时间。由于银行流计算业务系统中采用流计算架构,计算场景中的绝大多数任务均以有向无环图的抽象形式存在,针对该有向无环的任务拓扑图,只对有状态的算子进行快照,而并非同时阻塞所有计算流程,减少了快照的冗余数据,同时也尽可能避免了快照造成计算过程的停滞。
[0018](3)本专利技术方法将节点计算状态的快照存储于HDFS文件系统中,以此对快照信息做持久化处理。同时,HDFS存储快照数据的地址信息同数据偏移量信息一起存入Oracle数据库中进行保存,节点使用指针的形式获取HDFS文件系统存放数据的地址,通过地址访问快速读取快照信息,通过切换指针的方式即可进行节点计算状态的迁移工作。
附图说明
[0019]图1为快照开始的信号抵达节点后快照相关信息转存虚拟机的示意图。
[0020]图2为快照相关信息持久化处理示意图;
[0021]图3为迁移的目标节点从数据库中读取数据对记录示意图;
[0022]图4为迁移的目标节点恢复计算状态示意图。
具体实施方式
[0023]下面结合附图对本专利技术作进一步描述。
[0024]在银行风控等流计算业务场景中,希望在系统的计算过程中保持数据的准确性与一致性,容错率极低。在银行流计算业务系统中,采用流计算的架构作为数据处理的基础结构。在客户量较大,客户操作较多时,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于队列的银行流计算业务系统中检查点快速持久化方法,其特征在于,该方法包括如下步骤:(1)在银行流计算业务系统的操作量增加之前,人为向业务系统中需要进行流计算状态迁移的节点发出快照开始的指令,记录当前进行流计算节点的状态;(2)需要进行流计算状态迁移的节点在接收到快照的信号后,触发检查点机制:银行流计算业务系统的Kafka中对应Topic的数据、信息、消息传输均停止,业务系统中进行流计算的节点开始进行自身计算状态的快照操作,记录下Kafka中对应Topic的偏移量值以及节点当前计算状态;(3)基于Kafka消息队列先进先出的规则,将执行快照操作后的银行流计算业务系统中节点的流计算状态相关数据记录,按Kafka消息队列中的顺序依次存入HDFS文件系统中进行持久化保存;存储结束后,获取HDFS文件系统中的流计算状态相...

【专利技术属性】
技术研发人员:陈伟鲁萍杨运平王刚唐迪佳
申请(专利权)人:浙江邦盛科技股份有限公司
类型:发明
国别省市:

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

1