CN103577255A - 一种基于Zookeeper的多服务间异步进度控制的方法及系统 - Google Patents
一种基于Zookeeper的多服务间异步进度控制的方法及系统 Download PDFInfo
- Publication number
- CN103577255A CN103577255A CN201310522126.0A CN201310522126A CN103577255A CN 103577255 A CN103577255 A CN 103577255A CN 201310522126 A CN201310522126 A CN 201310522126A CN 103577255 A CN103577255 A CN 103577255A
- Authority
- CN
- China
- Prior art keywords
- subtask
- service
- relevant information
- newly
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于Zookeeper的多服务间异步进度控制的方法及系统,所述方法包括,新建一个节点;多个服务分别在Zookeeper上注册观察所述新建的节点的监听;当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;所述多个服务通过监听获取所述相关信息;每个服务根据所述相关信息进行处理;当所有子任务处理完毕,则总任务结束。本发明能够高效、简便地实现多服务间的异步进度控制。
Description
技术领域
本发明涉及分布式系统领域,尤其涉及一种基于Zookeeper的多服务间异步进度控制的方法及系统。
背景技术
复杂软件一般由不同的服务共同协调完成一项复杂的功能。这些不同的服务有可能运行在相同的物理服务器上,也有可能运行在不同的物理服务器上。不管对方服务运行在哪,多服务间需要以某种事先协商好的机制统一协调进度,并按照一定步骤共同完成某项负责的任务,但是目前还没有一种很好的方法来高效、简便地实现上述多服务间的异步进度控制。
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。Zookeeper使用Watcher察觉事件信息,当客户端接收到事件信息,比如连接超时,节点数据改变,子节点改变,可以调用相应的行为来处理数据。在对现有技术的研究和实践过程中,发明人发现现有技术至少存在以下问题:对于上述复杂软件目前还没有一种很好的方法来高效、简便地实现上述多服务间的异步进度控制,同时Zookeeper尚不能直接应用于对复杂软件进行异步进度控制。
发明内容
本发明所要解决的技术问题是如何高效、简便地实现上述多服务间的异步进度控制。
为了解决上述技术问题本发明提供一种基于Zookeeper的多服务间异步进度控制的方法,包括,新建一个节点;多个服务分别在Zookeeper上注册观察所述新建的节点的监听;当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;所述多个服务通过监听获取所述相关信息;每个服务根据所述相关信息进行处理;当所有子任务处理完毕,则总任务结束。
根据本发明的一个方面,提供一种基于Zookeeper的多服务间异步进度控制的方法,包括步骤:
S1、新建一个节点;
S2、多个服务分别在Zookeeper上注册观察所述新建的节点的监听;
S3、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;
S4、所述多个服务通过监听获取所述相关信息;
S5、每个服务根据所述相关信息进行处理;
S6、当所有子任务处理完毕,则总任务结束。
在上述方法中,所述每个服务根据所述相关信息进行处理包括步骤:
在上述方法中,判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息;
在上述方法中,如果是,则开始处理所述子任务;
在上述方法中,处理完毕后,在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。
在上述方法中,所述步骤S6具体包括:当所有子任务处理完毕,删除所述新建的节点,所述多个服务通过监听获知所述新建的节点被删除,总任务结束。
根据本发明的另一个方面,提供一种基于Zookeeper的多服务间异步进度控制的系统,包括:
节点控制单元,用于新建和删除节点;
任务控制单元,用于写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;
处理单元,用于处理所述子任务;
注册单元,用于注册观察新建节点的监听;
获取单元,用于通过监听获取所述相关信息和节点的建立和删除信息。
在上述系统中,多个服务通过注册单元分别在Zookeeper上注册观察所述新建节点的监听。
在上述系统中,当总任务开始后,通过所述任务控制单元在所述新建节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息。
在上述系统中,所述多个服务通过所述获取单元获取所述相关信息。
在上述系统中,所述多个服务中的各服务通过所述处理单元判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息。
在上述系统中,所述多个服务中的各服务通过所述处理单元处理各自的所述子任务。
在上述系统中,当前所述子任务处理完毕后,处理当前所述子任务的服务通过所述任务控制单元在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。
在上述系统中,当所有子任务处理完毕后,通过所述节点控制单元删除所述新建节点。
在上述系统中,当所述多个服务通过所述获取单元获知所述新建节点被删除时,总任务结束。
本发明的有益效果是:通过本发明提供的方法和系统,能够高效、简便地实现多服务间的异步进度控制。
附图说明
图1是本发明实施例提供的基于Zookeeper的多服务间异步进度控制的方法的处理流程图;
图2是本发明实施例提供的基于Zookeeper的多服务间异步进度控制的系统的结构框图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明实施例提供的基于Zookeeper的多服务间异步进度控制的方法的处理流程如图1所示,其中Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或从中获取数据。
本发明实施例提供的基于Zookeeper的多服务间异步进度控制的方法具体步骤如下:
101、新建一个节点。
新建一个节点,如Node1,这个节点中可以存储数据,并可从该节点中获取存储的数据。
102、多个服务分别在Zookeeper上注册观察新建的节点的监听。
以多服务A、B、C为例,服务A,B,C分别在Zookeeper上注册观察所述新建Node1的监听Watcher,即在Zookeeper上注册Watch Node1的事件处理函数;
103、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息。
当总任务开始后,所述新建的Node1上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息,如:{“服务A”,“子任务1”}。
104、多个服务通过监听获取所述相关信息。
服务A,B,C通过Watcher获取Node1的内容;
105、每个服务根据所述相关信息进行处理。
每个服务根据所述相关信息进行处理,即服务A发现轮到自己处理了,就开始处理“子任务1”,服务B和C发现不是自己的子任务,忽略该信息;服务A处理完毕后,在Node1中把包括当前需要处理的子任务和处理该子任务的服务的相关信息{“服务B”,“子任务2”}写入;服务B处理完“子任务2”后,在Node1中写入{“服务C”,“子任务3”};
106、当所有子任务处理完毕后,删除所述新建的节点。
服务C处理完“子任务3”,则所有子任务处理已经完毕,此时删除Node1,总任务结束。因服务A、B、C都会激发事件处理函数,发现Node1删除了,就都知道总任务完成了。
综上,本发明实施例通过新建一个Node,当总任务开始后,Zookeeper在所述新建Node上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息,每个服务根据所述相关信息进行处理,完成总任务,使得能够高效、简便地实现多服务间的异步进度控制。
本发明实施例提供的基于Zookeeper的多服务间异步进度控制的系统的结构框图如图2所示,该系统包括:
节点控制单元201,用于新建和删除节点;
任务控制单元202,用于写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;
处理单元203,用于处理所述子任务;
注册单元204,用于注册观察新建节点的监听;
获取单元205,用于通过监听获取相关信息和节点的建立和删除信息。
以多服务A、B、C为例,Zookeeper通过节点控制单元201新建Node1。
服务A,B,C通过注册单元204分别在Zookeeper上注册观察Node1的Watcher,即在Zookeeper上注册Watch Node1的事件处理函数。
当总任务开始后,Zookeeper通过任务控制单元202在所述新建Node1上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息,如:{“服务A”,“子任务1”}。
服务A,B,C通过获取单元205获取所述相关信息。
每个服务根据所述相关信息进行处理,即服务A通过处理单元203判断是否轮到自己处理了,就通过处理单元203开始处理“子任务1”,服务B和C通过处理单元203发现不是自己的子任务,忽略该信息。
服务A处理完毕后,通过任务控制单元202在所述新建Node1中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息:{“服务B”,“子任务2”}。
服务B通过处理单元203处理“子任务2”并在处理完后,在Node1中写入{“服务C”,“子任务3”};
服务C通过处理单元203处理“子任务3”,当所有子任务处理完毕后,通过节点控制单元201删除所述Node1。
服务A,B,C通过获取单元205获知所述Node1被删除,总任务结束。
综上,本发明实施例通过实施例提供的基于Zookeeper的多服务间异步进度控制的系统,通过节点控制单元201、任务控制单元202、处理单元203、注册单元204和获取单元205,实现新建一个Node,当总任务开始后,Zookeeper在所述新建Node上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;每个服务根据所述相关信息进行处理,完成总任务,使得能够高效、简便地实现多服务间的异步进度控制。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (12)
1.一种基于Zookeeper的多服务间异步进度控制的方法,其特征在于:包括步骤:
S1、新建一个节点;
S2、多个服务分别在Zookeeper上注册观察所述新建的节点的监听;
S3、当总任务开始后,在所述新建的节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;
S4、所述多个服务通过监听获取所述相关信息;
S5、每个服务根据所述相关信息进行处理;
S6、当所有子任务处理完毕,则总任务结束。
2.根据权利要求1所述的方法,其特征在于:步骤S5中,所述每个服务根据所述相关信息进行处理包括步骤:
S501、判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息;
S502、如果是,则开始处理所述子任务;
S503、处理完毕后,在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。
3.根据权利要求1所述的方法,其特征在于:所述步骤S6具体包括:当所有子任务处理完毕,删除所述新建的节点,所述多个服务通过监听获知所述新建的节点被删除,总任务结束。
4.一种基于Zookeeper的多服务间异步进度控制的系统,其特征在于,包括:
节点控制单元,用于新建和删除节点;
任务控制单元,用于写入包括当前需要处理的子任务和处理该子任务的服务的相关信息;
处理单元,用于处理所述子任务;
注册单元,用于注册观察新建节点的监听;
获取单元,用于通过监听获取所述相关信息和节点的建立和删除信息。
5.根据权利要求4所述的系统,其特征在于:多个服务通过注册单元分别在Zookeeper上注册观察所述新建节点的监听。
6.根据权利要求4所述的系统,其特征在于:当总任务开始后,通过所述任务控制单元在所述新建节点上写入包括当前需要处理的子任务和处理该子任务的服务的相关信息。
7.根据权利要求5所述的系统,其特征在于:所述多个服务通过所述获取单元获取所述相关信息。
8.根据权利要求7所述的系统,其特征在于:所述多个服务中的各服务通过所述处理单元判断所述相关信息中的子任务是否为自己的子任务,如果不是则忽略所述相关信息。
9.根据权利要求8所述的系统,其特征在于:所述多个服务中的各服务通过所述处理单元处理各自的所述子任务。
10.根据权利要求9所述的系统,其特征在于:当前所述子任务处理完毕后,处理当前所述子任务的服务通过所述任务控制单元在所述新建节点中写入新的包括当前需要处理的子任务和处理该子任务的服务的相关信息。
11.根据权利要求10所述的系统,其特征在于:当所有子任务处理完毕后,通过所述节点控制单元删除所述新建节点。
12.根据权利要求11所述的系统,其特征在于:当所述多个服务通过所述获取单元获知所述新建节点被删除时,总任务结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522126.0A CN103577255A (zh) | 2013-10-29 | 2013-10-29 | 一种基于Zookeeper的多服务间异步进度控制的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310522126.0A CN103577255A (zh) | 2013-10-29 | 2013-10-29 | 一种基于Zookeeper的多服务间异步进度控制的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103577255A true CN103577255A (zh) | 2014-02-12 |
Family
ID=50049098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310522126.0A Pending CN103577255A (zh) | 2013-10-29 | 2013-10-29 | 一种基于Zookeeper的多服务间异步进度控制的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577255A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888340A (zh) * | 2014-02-21 | 2014-06-25 | 汉柏科技有限公司 | 一种异步消息通知方法 |
CN103916481A (zh) * | 2014-04-17 | 2014-07-09 | 北京京东尚科信息技术有限公司 | 一种处理数据的方法和装置 |
CN106412123A (zh) * | 2016-11-28 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 云接入控制器分布式处理终端设备信息的方法和系统 |
CN108228581A (zh) * | 2016-12-09 | 2018-06-29 | 阿里巴巴集团控股有限公司 | Zookeeper兼容通信方法、服务器及系统 |
CN110597607A (zh) * | 2019-08-26 | 2019-12-20 | 东软集团股份有限公司 | 异步应用程序的执行方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN103152428A (zh) * | 2013-03-19 | 2013-06-12 | 汉柏科技有限公司 | 云平台上节点间进行服务通信的方法 |
CN103345508A (zh) * | 2013-07-04 | 2013-10-09 | 北京大学 | 一种适用于社会网络图的数据存储方法及系统 |
-
2013
- 2013-10-29 CN CN201310522126.0A patent/CN103577255A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN103152428A (zh) * | 2013-03-19 | 2013-06-12 | 汉柏科技有限公司 | 云平台上节点间进行服务通信的方法 |
CN103345508A (zh) * | 2013-07-04 | 2013-10-09 | 北京大学 | 一种适用于社会网络图的数据存储方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888340A (zh) * | 2014-02-21 | 2014-06-25 | 汉柏科技有限公司 | 一种异步消息通知方法 |
CN103916481A (zh) * | 2014-04-17 | 2014-07-09 | 北京京东尚科信息技术有限公司 | 一种处理数据的方法和装置 |
CN103916481B (zh) * | 2014-04-17 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 一种处理数据的方法和装置 |
CN106412123A (zh) * | 2016-11-28 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 云接入控制器分布式处理终端设备信息的方法和系统 |
CN106412123B (zh) * | 2016-11-28 | 2020-02-04 | 上海斐讯数据通信技术有限公司 | 云接入控制器分布式处理终端设备信息的方法和系统 |
CN108228581A (zh) * | 2016-12-09 | 2018-06-29 | 阿里巴巴集团控股有限公司 | Zookeeper兼容通信方法、服务器及系统 |
CN108228581B (zh) * | 2016-12-09 | 2022-06-28 | 阿里云计算有限公司 | Zookeeper兼容通信方法、服务器及系统 |
CN110597607A (zh) * | 2019-08-26 | 2019-12-20 | 东软集团股份有限公司 | 异步应用程序的执行方法、装置、存储介质及电子设备 |
CN110597607B (zh) * | 2019-08-26 | 2022-05-17 | 东软集团股份有限公司 | 异步应用程序的执行方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815028B (zh) | 数据同步的系统、方法、装置和计算机存储介质 | |
CN107832218B (zh) | 动态页面中的埋点处理方法、装置和计算机设备 | |
JP6339584B2 (ja) | 動的アイコンの表示方法、表示装置、プログラム及び記録媒体 | |
JP2019517043A5 (zh) | ||
CN107733968B (zh) | 应用信息推送方法、装置、计算机设备和存储介质 | |
JP2019531534A5 (zh) | ||
CN103577255A (zh) | 一种基于Zookeeper的多服务间异步进度控制的方法及系统 | |
US20150304265A1 (en) | Broadcast notification system | |
AU2021203255B2 (en) | Methods and systems for cloud-and mobile device-based biological inventory tracking | |
CN105515872B (zh) | 配置信息的更新方法、装置及系统 | |
US10261841B2 (en) | System and method for task scheduling and device management | |
CN111869178B (zh) | 近实时ip用户映射的方法和系统 | |
US20180091609A1 (en) | Following metrics for a/b testing | |
US9342369B2 (en) | System and method for increasing throughput of a PaaS system | |
US10477359B2 (en) | Publishing messages based on geographic area | |
CN113347269A (zh) | 一种工业系统的数据更新方法、电子设备和存储介质 | |
US20160125293A1 (en) | Rule-based action triggering in a provider network | |
CN113391901A (zh) | Rpa机器人的管理方法、装置、设备及存储介质 | |
US10033737B2 (en) | System and method for cross-cloud identity matching | |
US8694462B2 (en) | Scale-out system to acquire event data | |
US10146473B2 (en) | Systems and methods of subject state change notification | |
US20160277477A1 (en) | Information processing apparatus, terminal device, information processing method, and non-transitory computer readable recording medium | |
CN105528550B (zh) | 一种信息显示控制方法和装置 | |
JP2016028320A (ja) | 情報処理方法、プログラム、および情報処理装置 | |
CN110874276A (zh) | 一种跨进程通信方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140212 |