掌桥专利:专业的专利平台
掌桥专利
首页

基于Flink引擎的策略更新方法、装置、设备及介质

文献发布时间:2024-04-18 19:58:26


基于Flink引擎的策略更新方法、装置、设备及介质

技术领域

本申请涉及策略更新技术领域,特别涉及基于Flink引擎的策略更新方法、装置、设备及介质。

背景技术

Apache Flink是一个框架和分布式处理引擎,广泛应用各类大数据分析平台、网络安全检测平台的流数据处理、规则检测、告警检测等流计算业务。伴随社会数字化网络化智能化发展趋势、数据爆炸性增长,各类分析平台检测策略日益丰富、内置策略不断积累、自定义策略业务场景迅速增多;这些场景的变化涉及到规则的新增、删除、修改、启用、禁用等操作,面临这些策略的更新操作,常规的解决方案是手动/程序重启流计算任务,将所有任务及子任务全部重新提交重启以达到较为即时部署最新策略的目标;但是,每一次重启流计算任务都会造成时间上的消耗,重启过程中需要应用策略的数据将会被延迟处理,面对策略反复更新、反复重启必然会造成平台实时流处理特性的降低,另外也不能确保每一次更新策略后,都能及时重启流计算任务。

发明内容

有鉴于此,本申请的目的在于提供基于Flink引擎的策略更新方法、装置、设备及介质,能够避免手动或程序重启流计算任务,从而提升流处理的实时性。其具体方案如下:

第一方面,本申请公开了一种基于Flink引擎的策略更新方法,包括:

当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库;

基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型;

从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。

可选的,基于预设周期定时向Zookeeper发送策略更新消息,包括:

在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应不同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作所对应的策略类型以及更新时间。

可选的,基于预设周期定时向Zookeeper发送策略更新消息,包括:

在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应相同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作中首次策略更新操作所对应的策略类型以及更新时间,并将所述多次策略更新操作中非首次策略更新操作延后至后续周期进行通知。

可选的,还包括:

为所述目标平台的各策略类型在flink处理引擎中设置不同路径

可选的Zookeeper还将所述策略更新消息携带的更新时间记录至相应策略类型所对应的路径下。

可选的,将所述更新的策略写入数据库之后,还包括:

获取所述数据库同步的策略已写入完成信息。

可选的,所述数据库在初始化时,记录所述目标平台的所有策略;所述缓存器在初始化时,将所述目标平台的所有策略写入所述缓存。

第二方面,本申请公开了一种基于Flink引擎的策略更新装置,包括:

更新策略写入模块,用于当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库;

策略更新通知模块,用于基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型;

更新策略部署模块,用于从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。

第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,

所述存储器,用于保存计算机程序;

所述处理器,用于执行所述计算机程序,以实现前述的基于Flink引擎的策略更新方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的基于Flink引擎的策略更新方法。

可见,本申请当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库,基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型,从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。也即,本申请中,当平台发生策略更新,则将更新策略写入数据库,并且定时向Zookeeper发送策略更新消息,Zookeeper在接收到策略更新消息后,通知缓存器从数据库拉取目标类型的策略至缓存,进而从缓存中读取目标类型的策略并部署至相应的流计算任务,这样,通过定时向Zookeeper发送策略更新消息,通知缓存器从数据库拉取目标类型的策略至缓存,进而实现更新策略的部署,能够避免手动或程序重启流计算任务,从而提升流处理的实时性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种基于Flink引擎的策略更新方法流程图;

图2为本申请实施例提供的一种具体的基于Flink引擎的策略更新方法流程图;

图3为本申请实施例提供的一种基于Flink引擎的策略更新装置结构示意图;

图4为本申请实施例提供的一种电子设备结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,对于平台的策略更新操作,常规的解决方案是手动/程序重启流计算任务,将所有任务及子任务全部重新提交重启以达到较为即时部署最新策略的目标;但是,每一次重启流计算任务都会造成时间上的消耗,重启过程中需要应用策略的数据将会被延迟处理,面对策略反复更新、反复重启必然会造成平台实时流处理特性的降低,另外也不能确保每一次更新策略后,都能及时重启流计算任务。为此,本申请提供一种基于Flink引擎的策略更新方案,能够避免手动或程序重启流计算任务,从而提升流处理的实时性。

参见图1所示,本申请实施例公开了一种基于Flink引擎的策略更新方法,包括:

步骤S11:当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库。

其中,目标平台可以为大数据分析平台、网络安全检测平台等,平台前端或后端新增、修改、删除、启用或禁用各策略均为策略更新操作。本申请实施例可以预先为所述目标平台的各策略类型在flink处理引擎中设置不同路径。Flink是一种开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。

并且,所述数据库在初始化时,记录所述目标平台的所有策略。当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库。获取所述数据库同步的策略已写入完成信息。也即,数据库更新策略完成后,同步平台“策略已写入完成”的信息。

步骤S12:基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型。

其中,所述缓存器在初始化时,将所述目标平台的所有策略写入所述缓存。并且,缓存器从所述数据库拉取目标类型的策略至缓存是拉取目标类型所有的策略至缓存。

在具体的实施方式中,在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应不同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作所对应的策略类型以及更新时间。

并且,在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应相同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作中首次策略更新操作所对应的策略类型以及更新时间,并将所述多次策略更新操作中非首次策略更新操作延后至后续周期进行通知。具体的,可以每个周期通知一次策略更新操作,比如,存在3次策略更新操作,对应相同类型的策略,对于其中的第二次策略更新操作,则在下一周期结束时刻,向Zookeeper发送策略更新消息,对于其中的第三次策略更新操作,则在下下个周期的结束时刻,向Zookeeper发送策略更新消息。

另外,Zookeeper还将所述策略更新消息携带的更新时间记录至相应策略类型所对应的路径下。也即,本申请实施例以Zookeeper作为监听器,实时监听策略更新消息。

其中,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。缓存是嵌入在应用程序或设备内存中的硬件或软件组件,可临时存储用户使用的数据,以减少下次访问应用程序或设备时的数据检索时间和工作量。

步骤S13:从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。

也即,将所述目标类型的所有策略部署至所述目标类型的策略所对应的流计算任务,具体的,每个流计算任务可以分为多个子任务,可以分别部署至相应的子任务。

可见,本申请实施例当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库,基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型,从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。也即,本申请实施例中,当平台发生策略更新,则将更新策略写入数据库,并且定时向Zookeeper发送策略更新消息,Zookeeper在接收到策略更新消息后,通知缓存器从数据库拉取目标类型的策略至缓存,进而从缓存中读取目标类型的策略并部署至相应的流计算任务,这样,通过定时向Zookeeper发送策略更新消息,通知缓存器从数据库拉取目标类型的策略至缓存,进而实现更新策略的部署,能够避免手动或程序重启流计算任务,从而提升流处理的实时性。

进一步的,参见图2所示,本申请提供了一种具体的基于Flink引擎的策略更新方法流程图。本申请实施例提供了应对基于Flink引擎的高效动态更新策略的解决方案,本方案增加监听器实时监听策略是否存在更新,定时同步策略更新消息至缓存器,当存在更新时,缓存器拉取数据库数据动态更新至缓存,并部署至对应类别任务,避免手动/程序重启流计算任务,大大提升了策略更新的频率,便捷了策略更新的操作及人为误操作的几率,提升了流处理的实时性。具体包括以下步骤:

1.策略分类及部署:平台各类别策略设置在flink处理引擎中的不同路径,例如,统计策略在flink/rule/statistics、白名单策略在flink/rule/whitelist。

2.同步数据库:数据库初始化时,全量记录平台所有策略;当平台各类策略存在更新时,程序将更新策略同步写入数据库;数据库更新策略完成后,同步平台“策略已写入完成”的信息。其中,平台前端或后端新增、修改、删除、启用或禁用各类策略的操作均定义为策略更新操作。

3.定时器定时通知消息Zookeeper:可以设置定时器,依据实时性要求设置定时通知的时长,如15秒;定时器按照设置时长,每N秒通知Zookeeper;当在N秒内,平台存在第二次变更消息且为不同类型策略更新的操作,则在第N秒时,一并将变更内容通知Zookeeper;当在N秒内,平台存在第二次同类型策略更新的操作,则将第二次策略更新的内容延后至下一个N秒,以避免遗漏频繁更新时的内容

4.Zookeeper实时监听:平台存在策略的更新且已写入数据库后,按照定时任务通知Zookeeper存在更新;Zookeeper监听各类别策略的变化,不同类型策略对应不同路径,监听通知消息,消息内容中包含具体哪一类策略、更新时间,Zookeeper接收到消息后,在相应类别策略的路径下记录更新时间。Zookeeper通知流任务中的缓存器取拉取数据库内容。

5.缓存器从数据库中拉取数据写入缓存:缓存器初始化时,全量写入平台所有策略,与数据库初始化数据一致;缓存器收到Zookeeper发过来的通知,去数据库拉取对应类别的数据,如统计策略发生更新,则拉取所有统计策略写入缓存。缓存器的存在大大减少了流计算直接拉取数据库数据的压力,支持数据动态生效,即能够将更新策略动态部署至流计算任务;缓存器存在缓存失效时长,拉入新数据后10S内不再写入新数据,因此需要设置前述的定时机制。

6、部署策略至流计算任务:程序将缓存中的更新策略的类型下所有策略部署至对应的流计算任务及子任务。相比流计算任务直接拉取数据库策略部署重启操作,缓存策略部署至流计算任务耗时极少;对应流计算任务及子任务按照最新的策略生效处理数据,其他流任务运行不涉及更新,运行不受影响。

另外,当平台规则不涉及到更新时,中Zookeeper未监听到状态更新,后续同步通知的流程不再进行,流计算任务按照初始化策略运行。

这样,策略更新时,无需重启流计算任务,大大降低重启任务的时间成本。Zookeeper实时监听策略变更状态,准确、清晰记录变更内容及变更时间,避免遗漏策略的更新,更易追溯排查相关问题。缓存器的使用,大大减少了流计算直接拉取数据库数据的压力,使得部署策略的速率提升,从而提升更新策略的效率。数据动态生效,自动化部署流任务减少人为手动部署任务存在较多不可控因素,实时性得到较大的提升。本申请广泛适用各类基于Flink框架和分布式处理引擎的网络平台。

参见图3所示,本申请实施例公开了一种基于Flink引擎的策略更新装置,包括:

更新策略写入模块11,用于当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库;

策略更新通知模块12,用于基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型;

更新策略部署模块13,用于从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。

可见,本申请实施例当目标平台发生策略更新操作,则将所述策略更新操作对应的更新策略写入数据库,基于预设周期定时向Zookeeper发送策略更新消息,以便Zookeeper在接收到所述策略更新消息后,通知缓存器从所述数据库拉取目标类型的策略至缓存;所述目标类型为所述更新策略的策略类型,从所述缓存中读取所述目标类型的策略,并将所述目标类型的策略部署至所述目标类型的策略所对应的流计算任务。也即,本申请实施例中,当平台发生策略更新,则将更新策略写入数据库,并且定时向Zookeeper发送策略更新消息,Zookeeper在接收到策略更新消息后,通知缓存器从数据库拉取目标类型的策略至缓存,进而从缓存中读取目标类型的策略并部署至相应的流计算任务,这样,通过定时向Zookeeper发送策略更新消息,通知缓存器从数据库拉取目标类型的策略至缓存,进而实现更新策略的部署,能够避免手动或程序重启流计算任务,从而提升流处理的实时性。

其中,策略更新通知模块12,具体用于在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应不同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作所对应的策略类型以及更新时间。并且,在任一周期内,若所述目标平台发生多次策略更新操作且所述多次策略更新操作对应相同类型的策略,则在该周期的结束时刻,向Zookeeper发送策略更新消息,该策略更新消息携带所述多次策略更新操作中首次策略更新操作所对应的策略类型以及更新时间,并将所述多次策略更新操作中非首次策略更新操作延后至后续周期进行通知。

并且,所述装置还包括策略路径设置模块,用于为所述目标平台的各策略类型在flink处理引擎中设置不同路径。

进一步的,Zookeeper还将所述策略更新消息携带的更新时间记录至相应策略类型所对应的路径下。

进一步的,所述装置还包括信息获取模块,用于获取所述数据库同步的策略已写入完成信息。

在具体的实施方式中,所述数据库在初始化时,记录所述目标平台的所有策略;所述缓存器在初始化时,将所述目标平台的所有策略写入所述缓存。

参见图4所示,本申请实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的基于Flink引擎的策略更新方法。

关于上述基于Flink引擎的策略更新方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。

另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的基于Flink引擎的策略更新方法。

关于上述基于Flink引擎的策略更新方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的基于Flink引擎的策略更新方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 基于规则引擎的验证方法、验证设备、存储介质及装置
  • 基于大数据的标签数据更新方法、装置、介质及电子设备
  • 基于大数据的页面更新方法及装置、电子设备、存储介质
  • 基于区块链的密钥存储、更新方法、装置、设备和介质
  • 引擎监控数据的获取方法、装置、终端设备及存储介质
  • 一种基于Flink流式引擎的CEP规则更新方法
  • 基于Flink的工作流引擎实现方法、系统、设备及存储介质
技术分类

06120116493047