一种基于Zookeeper的多服务间异步进度控制的方法及系统技术方案

技术编号:9667746 阅读:154 留言:0更新日期:2014-02-14 06:01
一种基于Zookeeper的多服务间异步进度控制的方法及系统,所述方法包括,新建一个节点;多个服务分别在Zookeeper上注册观察所述新建的节点的监听;当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;所述多个服务通过监听获取所述相关信息;每个服务根据所述相关信息进行处理;当所有子任务处理完毕,则总任务结束。本发明专利技术能够高效、简便地实现多服务间的异步进度控制。

【技术实现步骤摘要】
—种基于Zookeeper的多服务间异步进度控制的方法及系统
本专利技术涉及分布式系统领域,尤其涉及一种基于Zook^per的多服务间异步进度控制的方法及系统。
技术介绍
复杂软件一般由不同的服务共同协调完成一项复杂的功能。这些不同的服务有可能运行在相同的物理服务器上,也有可能运行在不同的物理服务器上。不管对方服务运行在哪,多服务间需要以某种事先协商好的机制统一协调进度,并按照一定步骤共同完成某项负责的任务,但是目前还没有一种很好的方法来高效、简便地实现上述多服务间的异步进度控制。Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。Zookeeper使用Watcher察觉事件信息,当客户端接收到事件信息,比如连接超时,节点数据改变,子节点改变,可以调用相应的行为来处理数据。在对现有技术的研究和实践过程中,专利技术人发现现有技术至少存在以下问题:对于上述复杂软件目前还没有一种很好的方法来高效、简便地实现上述多服务间的异步进度控制,同时Zookeeper尚不能直接应用于对复杂软件进行异步进度控制。
技术实现思路
本专利技术所要解决的技术问题是如何高效、简便地实现上述多服务间的异步进度控制。为了解决上述技术问题本专利技术提供一种基于Zook^per的多服务间异步进度控制的方法,包括,新建一个节点;多个服务分别在Zookeeper上注册观察所述新建的节点的监听;当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;所述多个服务通过监听获取所述相关信息;每个服务根据所述相关信息进行处理;当所有子任务处理完毕,则总任务结束。根据本专利技术的一个方面,提供一种基于Zookeeper的多服务间异步进度控制的方法,包括步骤:S1、新建一个节点;S2、多个服务分别在Zook^per上注册观察所述新建的节点的监听;S3、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;S4、所述多个服务通过监听获取所述相关信息;S5、每个服务根据所述相关信息进行处理;S6、当所有子任务处理完毕,则总任务结束。在上述方法中,所述每个服务根据所述相关信息进行处理包括步骤:在上述方法中,判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息;在上述方法中,如果是,则开始处理所述子任务;在上述方法中,处理完毕后,在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。在上述方法中,所述步骤S6具体包括:当所有子任务处理完毕,删除所述新建的节点,所述多个服务通过监听获知所述新建的节点被删除,总任务结束。根据本专利技术的另一个方面,提供一种基于Zook^per的多服务间异步进度控制的系统,包括:节点控制单元,用于新建和删除节点;任务控制单元,用于写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;处理单元,用于处理所述子任务;注册单元,用于注册观察新建节点的监听;获取单元,用于通过监听获取所述相关信息和节点的建立和删除信息。在上述系统中,多个服 务通过注册单元分别在Zookeeper上注册观察所述新建节点的监听。在上述系统中,当总任务开始后,通过所述任务控制单元在所述新建节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息。在上述系统中,所述多个服务通过所述获取单元获取所述相关信息。在上述系统中,所述多个服务中的各服务通过所述处理单元判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息。在上述系统中,所述多个服务中的各服务通过所述处理单元处理各自的所述子任务。在上述系统中,当前所述子任务处理完毕后,处理当前所述子任务的服务通过所述任务控制单元在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。在上述系统中,当所有子任务处理完毕后,通过所述节点控制单元删除所述新建节点。在上述系统中,当所述多个服务通过所述获取单元获知所述新建节点被删除时,总任务结束。本专利技术的有益效果是:通过本专利技术提供的方法和系统,能够高效、简便地实现多服务间的异步进度控制。【附图说明】图1是本专利技术实施例提供的基于Zookeeper的多服务间异步进度控制的方法的处理流程图;图2是本专利技术实施例提供的基于Zookeeper的多服务间异步进度控制的系统的结构框图; 【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合【具体实施方式】并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。本专利技术实施例提供的基于Zooke^er的多服务间异步进度控制的方法的处理流程如图1所示,其中Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或从中获取数据。本专利技术实施例提供的基于Zookeeper的多服务间异步进度控制的方法具体步骤如下:101、新建一个节点。新建一个节点,如Nodel,这个节点中可以存储数据,并可从该节点中获取存储的数据。102、多个服务分别在Zookeeper上注册观察新建的节点的监听。以多服务A、B、C为例,服务A,B, C分别在Zooke^er上注册观察所述新建Nodel的监听Watcher,即在Zookeeper上注册Watch Nodel的事件处理函数;103、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息。当总任务开始后,所述新建的Nodel上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息,如:{ “服务A”,“子任务I” }。104、多个服务通过监听获取所述相关信息。服务A, B, C通过Watcher获取Nodel的内容;105、每个服务根据所述相关信息进行处理。每个服务根据所述相关信息进行处理,即服务A发现轮到自己处理了,就开始处理“子任务1”,服务B和C发现不是自己的子任务,忽略该信息;服务A处理完毕后,在Nodel中把包括当前需要处理的子任务和处理该子任务的服务的相关信息{ “服务B”,“子任务2”}写入;服务B处理完“子任务2”后,在Nodel中写入{ “服务C”,“子任务3” };106、当所有子任务处理完毕后,删除所述新建的节点。服务C处理完“子任务3”,则所有子任务处理已经完毕,此时删除Nodel,总任务结束。因服务A、B、C都会激发事件处理函数,发现Nodel删除了,就都知道总任务完成了。综上,本专利技术实施例通过新建一个Node,当总任务开始后,Zookeeper在所述新建Node上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息,每个服务根据所述相关信息进行处理,完成总任务,使得能够高效、简便地实现多服务间的异步进度控制。本专利技术实施例提供的基于Zooke印er的多服务间异步进度控制的系统的结构框图如图2所示,该系统包括:节点控制单元201,用本文档来自技高网...

【技术保护点】
一种基于Zookeeper的多服务间异步进度控制的方法,其特征在于:包括步骤:S1、新建一个节点;S2、多个服务分别在Zookeeper上注册观察所述新建的节点的监听;S3、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;S4、所述多个服务通过监听获取所述相关信息;S5、每个服务根据所述相关信息进行处理;S6、当所有子任务处理完毕,则总任务结束。

【技术特征摘要】
1.一种基于Zookeeper的多服务间异步进度控制的方法,其特征在于:包括步骤: S1、新建一个节点; S2、多个服务分别在Zooke^er上注册观察所述新建的节点的监听; S3、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息; S4、所述多个服务通过监听获取所述相关信息; S5、每个服务根据所述相关信息进行处理; S6、当所有子任务处理完毕,则总任务结束。2.根据权利要求1所述的方法,其特征在于:步骤S5中,所述每个服务根据所述相关信息进行处理包括步骤: S501、判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息; S502、如果是,则开始处理所述子任务; S503、处理完毕后,在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。3.根据权利要求1所述的方法,其特征在于:所述步骤S6具体包括:当所有子任务处理完毕,删除所述新建的节点,所述多个服务通过监听获知所述新建的节点被删除,总任务结束。4.一种基于Zook^per的多服务间异步进度控制的系统,其特征在于,包括: 节点控制单元,用于新建和删除节点; 任务控制单元,用于写入包括当前需要处理的子任务和处理该子任务的服务的相关信息; 处理单元,用于处理所述...

【专利技术属性】
技术研发人员:徐安
申请(专利权)人:汉柏科技有限公司
类型:发明
国别省市:

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

1