基于zookeeper的流式动态配置更新架构及方法技术

技术编号:15638868 阅读:69 留言:0更新日期:2017-06-15 19:56
本发明专利技术提供了基于zookeeper的流式处理动态配置更新架构及基于该架构实现的方法,其中架构包括zookeeper处理平台、Storm流式处理平台、配置管理系统和数据库,zookeeper中部署若干节点,流式处理平台中执行有若干流式处理子任务监控zookeeper上的指定节点,在节点更新时查询数据库中更新配置;配置管理系统用于管理配置信息,更新数据库中的相应配置,当选择同步更新时,配置管理系统更新zookeeper平台上的节点。本发明专利技术能够保证流式处理任务不间断执行的情况下实现动态配置更新;在配置不更新的情况下不查询,而需要同步时,所有需要更新节点立刻响应查询请求,完成配置更新,实现按需配置。

【技术实现步骤摘要】
基于zookeeper的流式动态配置更新架构及方法
本专利技术属于数据处理
,具体涉及基于zookeeper的流式动态配置更新架构及方法。
技术介绍
流式处理任务是针对实时分析的技术,主要用于实现7*24小时不间断的实时数据处理,实时数据分析。流式处理的主要特点是数据流不间断,处理任务不间断,结果响应实时性高。常用的实时处理框架分为数据驱动的低延时框架,如storm;以及时间窗口数据批处理的准实时框架,如sparkstreaming。流式处理任务需要7*24小时不间断服务,而且其运行的平台是分布式,任务都是分布在不同的机器上,因此配置更新需要分布式集群的所有机器上的任务都更新配置。这就决定了流式处理任务一般不会通过配置文件去管理程序配置(需要同步文件到所有的机器),一般是通过数据库管理配置,且复杂度增加。对于流式处理任务来说,一般有很多的配置选项,作为对实时数据的处理准则,例如:过滤数据字段,数据清洗准则,指标维度计算等。涉及到大量的配置,这其中有些是需要根据不同的业务需求去实时更新,并且实时结果响应。具体地说,目前一般通过以下几种方式来实现配置更新:1.重启任务,通过程序初始化加载配置。该方式需要对流式处理任务间断,这就决定了重启任务会有一定的局限,无法适用于实时性要求高的任务。2.轮询查询配置数据库,分布式集群每台运行任务的机器都需要轮询查询。该方式效率低下,对于配置更新频次低下的任务,则会浪费大量的cpu时间去做无谓的查询,同时当集群机器数量很多时,大量的数据库连接和查询会造成数据库的负载过高。综上所述,现有的配置更新方式或效率低下,或需要间断任务,无法满足不间断的流式处理任务的高效更新需求。
技术实现思路
为解决上述问题,本专利技术公开了基于zookeeper的流式动态配置更新架构及基于该架构实现的方法,能够保证流式处理任务不间断执行的情况下可以实现动态配置更新,实时响应。为了达到上述目的,本专利技术提供如下技术方案:基于zookeeper的流式动态配置更新架构,包括zookeeper处理平台、Storm流式处理平台、配置管理系统和数据库,所述zookeeper处理平台部署若干节点,zookeeper平台中设有更新事件,当zookeeper处理平台节点更新时触发更新事件,更新事件能够向Storm流式处理平台输出事件路径;所述Storm流式处理平台用于执行7*24小时流式处理任务,Storm流式处理平台中执行有若干流式处理子任务,流式处理子任务用于监控zookeeper上的指定节点,并能够在自己监控的节点更新时获取数据库中的配置信息更新流式处理平台中的任务配置;配置管理系统用于管理配置信息,用于运行和查看任务的配置,并提供同步更新线上流式处理任务功能,当更改配置后配置管理系统更新数据库中的相应配置,当选择同步更新线上流式处理任务时,配置管理系统更新zookeeper平台上的节点,触发更新事件。进一步的,所述流式处理子任务中包含Zk监控单元和配置更新操作单元,所述Zk监控单元用于监控节点更新事件,当监控到节点更新事件之后,获取更新事件输出的事件路径,判断事件路径与监控路径是否一致,如一致则触发配置更新操作单元工作;所述配置更新操作单元用于读取数据库中的配置信息并更新当前运行任务配置文件。进一步的,所述配置更新操作单元读取数据库中的配置信息更新当前运行任务配置文件的过程包括:建立数据库连接,用指定sql语句去查询配置表,读取最新配置文件之后,更新改任务的配置准则。进一步的,配置管理系统提供web界面。本专利技术还提供了基于zookeeper的流式动态配置更新方法,包括如下步骤:构建zookeeper处理平台和流式处理平台,zookeeper处理平台具有若干节点,Storm流式处理平台中发布若干流式处理子任务,所述流式处理子任务不间断运行,流式处理子任务持续监控zookeeper处理平台上的指定节点;当配置更新时,更新后的配置存储在数据库中,当无后续操作时,本步骤终止;当同步更新线上流式处理任务时,更新zookeeper处理平台中的节点并触发更新事件;流式处理平台中的流式处理子任务监控到zookeeper处理平台中节点更新事件,判断事件路径与监控路径一致时触发配置更新操作单元工作,配置更新操作单元读取数据库并获取数据库中最新的配置文件后更新当前运行任务配置文件,流式任务立刻响应最新的配置准则,根据最新配置准则去处理接下来流入的数据。与现有技术相比,本专利技术具有如下优点和有益效果:本专利技术通过流式处理任务监控zookeeper节点来进行配置更新,能够保证流式处理任务不间断执行的情况下实现动态配置更新;由于只在需要时更新,实现在配置不更新的情况下不查询,而在配置更新完成需要同步线上环境的时候,所有需要更新节点立刻响应查询请求,去完成配置更新,真正的实现按需配置,简单配置,提高运行效率,节约设备资源。附图说明图1为本专利技术架构图。图2为流式处理任务和配置管理更新过程流程图。具体实施方式以下将结合具体实施例对本专利技术提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本专利技术而不用于限制本专利技术的范围。本专利技术提供的基于zookeeper的流式处理动态配置更新架构,如图1所示,包括zookeeper处理平台、Storm流式处理平台、配置管理系统,通过三个平台/系统配合数据库完成整个流式处理任务配置的动态更新。其中zookeeper处理平台在三台机器上部署三个节点,zookeeper平台中还设有更新事件(WatchedEvent),当任一节点更新时触发更新事件,更新事件触发所有监控该事件的任务,并能够输出事件path(路径)。Storm流式处理平台是用于执行流式处理任务的分布式系统,其架构采用现有技术。本专利技术中,在Storm流式处理平台上设置了若干流式处理子任务(Bolt),流式处理任务提交之后,监控zookeeper节点,处于一直运行的状态,不会去主动查询配置,高效的完成7*24小时流式处理任务。流式处理各个子任务(Bolt)用于监控zookeeper上的若干节点,当监控到节点更新事件时查询数据库进行动态配置更新,继续运行7*24小时任务。Storm流式处理平台中StormTopology(流式任务)用于将各个子任务Bolt组合起来,发布到storm平台上开始流式处理任务。配置管理系统用于管理配置信息,用于运行和查看任务的配置,同时在配置完成更新之后,可以选择是否同步更新线上流式处理任务的配置,当选择同步更新线上流式任务的配置之后,触发zookeeper节点状态更新。具体的说,在zookeeper处理平台中,触发更新状态通过zookeeper的api:org.apache.zookeeper.ZooKeeper.setData方法(该方法为现有技术,在本专利技术中不详细描述)实现。该方法对于指定path节点设置新数据并更新版本号,该更新过程会触发更新事件,更新事件监控到该更新后能够触发所有监控该事件的任务。在本专利技术中,更新事件能够触发监控当前更新节点的子任务(Bolt)。各流式处理子任务(Bolt)能够监控zookeeper处理平台中的指定节点,并能够在自己监控的节点更新时获取数据库中的配置信息更新流式处理平台中的任务本文档来自技高网
...
基于zookeeper的流式动态配置更新架构及方法

【技术保护点】
基于zookeeper的流式动态配置更新架构,其特征在于:包括zookeeper处理平台、Storm流式处理平台、配置管理系统和数据库,所述zookeeper处理平台部署若干节点,zookeeper平台中设有更新事件,当zookeeper处理平台节点更新时触发更新事件,更新事件能够向Storm流式处理平台输出事件路径;所述Storm流式处理平台用于执行7*24小时流式处理任务,Storm流式处理平台中执行有若干流式处理子任务,流式处理子任务用于监控zookeeper上的指定节点,并能够在自己监控的节点更新时获取数据库中的配置信息更新流式处理平台中的任务配置;配置管理系统用于管理配置信息,用于运行和查看任务的配置,并提供同步更新线上流式处理任务功能,当更改配置后配置管理系统更新数据库中的相应配置,当选择同步更新线上流式处理任务时,配置管理系统更新zookeeper平台上的节点,触发更新事件。

【技术特征摘要】
1.基于zookeeper的流式动态配置更新架构,其特征在于:包括zookeeper处理平台、Storm流式处理平台、配置管理系统和数据库,所述zookeeper处理平台部署若干节点,zookeeper平台中设有更新事件,当zookeeper处理平台节点更新时触发更新事件,更新事件能够向Storm流式处理平台输出事件路径;所述Storm流式处理平台用于执行7*24小时流式处理任务,Storm流式处理平台中执行有若干流式处理子任务,流式处理子任务用于监控zookeeper上的指定节点,并能够在自己监控的节点更新时获取数据库中的配置信息更新流式处理平台中的任务配置;配置管理系统用于管理配置信息,用于运行和查看任务的配置,并提供同步更新线上流式处理任务功能,当更改配置后配置管理系统更新数据库中的相应配置,当选择同步更新线上流式处理任务时,配置管理系统更新zookeeper平台上的节点,触发更新事件。2.根据权利要求1所述的基于zookeeper的流式动态配置更新架构,其特征在于:所述流式处理子任务中包含Zk监控单元和配置更新操作单元,所述Zk监控单元用于监控zookeeper处理平台中的指定的节点更新状态,当zookeeper处理平台中节点状态有变化时,判断事件path路径与监控path路径是否一致,如一致则触发配置更新操作单元工作;所述配置更新操...

【专利技术属性】
技术研发人员:禹平董子平孟敬慈
申请(专利权)人:江苏途致信息科技有限公司
类型:发明
国别省市:江苏,32

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

1