一种基于zookeeper的分布式任务协调的方法及装置制造方法及图纸

技术编号:21832149 阅读:43 留言:0更新日期:2019-08-10 17:49
本发明专利技术公开了一种基于zookeeper的分布式任务协调的方法及装置;方法包括如下步骤:将待执行的任务抽象成有限个初始分片,并经有限个初始分片存储在zookeeper中;初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;延迟启动两个监听线程,分别监听节点变化和分片变化;当监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数;判断初始最大片数以及更新最大片数是否相同;若不同,进行分片抢占或丢弃操作,并将结果通知业务程序。本发明专利技术的方案采用开箱即用的分布式任务协调方案,通过简洁的方法,提高了灵活度,降低分布式系统的构建成本。

A Method and Device for Distributed Task Coordination Based on Zookeeper

【技术实现步骤摘要】
一种基于zookeeper的分布式任务协调的方法及装置
本专利技术涉及分布式系统中任务分配的框架
,具体涉及一种基于zookeeper的分布式任务协调的方法及装置。
技术介绍
在互联网系统中,涉及大量的分布式计算;但如何来进行任务协调、分配,节点变化后的任务调整,缺少灵活、简洁以及与业务耦合度低比较通用的框架;进而导致了构建分布式系统难度增大。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。然而目前的ZooKeeper存在以下问题:不能及时对节点或者任务分片的变化进行更新,导致节点的处理能力无法充分发挥。
技术实现思路
针对现有技术中的缺陷,本专利技术提供一种基于zookeeper的分布式任务协调的方法及装置。一方面,本专利技术提供了一种基于zookeeper的分布式任务协调的方法,所述方法包括下述步骤:将待执行的任务抽象成有限个初始分片,并经有限个初始分片存储在zookeeper中;初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;延迟启动两个监听线程,分别监听节点变化和分片变化;当监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数;判断初始最大片数以及更新最大片数是否相同;若不同,进行分片抢占或丢弃操作,并将结果通知业务程序。可选地,初始最大片数的计算步骤包括:判断初始分片的数量是否为初始节点的整数倍;若是,则初始最大片数为初始分片的数量相对于初始节点的数量的倍数;若否,则初始最大片数为初始分片的数量与初始节点的数量的商加1。可选地,在重新计算更新最大片数之后,利用监听线程持续监听节点变化和分片变化,并在发生变化后重复计算更新最大片数。可选地,进行分片抢占或丢弃操作的步骤,包括:若更新最大片数大于初始最大片数,使节点放弃已经占用的分片,并重新计算更新最大片数;若更新最大片数小于初始最大片数,尝试抢占未被占用的分片,并重新计算更新最大片数。另一方面,本专利技术提供了一种基于zookeeper的分布式任务协调的装置,所述装置包括任务设定单元,用于将待执行的任务抽象成有限个初始分片,并经有限个初始分片存储在zookeeper中;注册启动单元,用于初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;任务监控单元,延迟启动两个监听线程,分别监听节点变化和分片变化;变化计算单元,用于当监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数;协调分配单元,用于判断初始最大片数以及更新最大片数是否相同;若不同,进行分片抢占或丢弃操作,并将结果通知业务程序。可选地,变化计算单元,还用于判断初始分片的数量是否为初始节点的整数倍;若是,则初始最大片数为初始分片的数量相对于初始节点的数量的倍数;若否,则初始最大片数为初始分片的数量与初始节点的数量的商加1。可选地,任务监控单元,还用于在重新计算更新最大片数之后,利用监听线程持续监听节点变化和分片变化;并且变化计算单元,还用于在发生变化后重复计算更新最大片数。可选地,协调分配单元,还用于若更新最大片数大于初始最大片数,使节点放弃已经占用的分片,并重新计算更新最大片数;若更新最大片数小于初始最大片数,尝试抢占未被占用的分片,并重新计算更新最大片数。另一方面,本专利技术提供了一种存储介质,其存储有计算机程序,该计算机程序被执行时用于实现上述基于zookeeper的分布式任务协调的方法。另一方面,本专利技术提供了一种计算设备,包括存储器以及处理器,存储器存储有计算机程序,该计算机程序被处理器执行时用于实现上述基于zookeeper的分布式任务协调的方法。本专利技术的有益效果体现在:在本专利技术中,通过监听线程发现节点或者分片变化,立即进行节点允许抢占的初始最大片数的计算,根据计算结果执行分片抢占或者放弃操作;采用这种分布式任务协调方案,通过简洁的方法,提高了灵活度,降低分布式系统的构建成本。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1是本专利技术实施例提供的一种基于zookeeper的分布式任务协调的方法流程示意图;图2是本专利技术实施例提供的一种基于zookeeper的分布式任务协调的装置的结构示意图;图3是本专利技术实施例提供的一种基于zookeeper的分布式任务协调的方法的流程图;图4是本专利技术实施例提供的存储介质的示意图;图5是本专利技术实施例提供的计算设备的示意图。具体实施方式下面将结合附图对本专利技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,因此只作为示例,而不能以此来限制本专利技术的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本专利技术所属领域技术人员所理解的通常意义。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本专利技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在互联网系统中,涉及大量的分布式计算;但如何来进行任务协调、分配,节点变化后的任务调整,缺少灵活、简洁以及与业务耦合度低比较通用的框架;进而导致了构建分布式系统难度增大;为了解决上述问题,所以有必要,研制一种基于zookeeper的分布式任务协调的方法及装置,采用开箱即用的分布式任务协调方案,通过简洁的方法,提高了灵活度,降低分布式系统的构建成本。本专利技术具体实施方式提供一种基于zookeeper的分布式任务协调的方法,该方法如图1所示,包括如下步骤:步骤S1,将待执行的任务抽象成有限个初始分片,并经有限个初始分片存储在zookeeper中;系统维护者可以自行维护任务与分片的映射关系,步骤S2,初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;初始最大片数的计算步骤包括:判断初始分片的数量是否为初始节点的整数倍;若是,则初始最大片数为初始分片的数量相对于初始节点的数量的倍数;若否,则初始最大片数为初始分片的数量与初始节点的数量的商加1。初始最大片数max的计算伪代码可以为Max=n÷m,If(n/m>0)max++。中n为初始分片的数量,而m为初始节点的数量。步骤S3,延迟启动两个监听线程,分别监听节点变化和分片变化;其中第一监听线程可以用于监听节点变化,第二监听线程可以用于监听分片变化。在本专利技术实施例中,为了保证系统稳定性,除了2个监听线程,还可以增加新增终端检测,终端周期性地检查当前节点所占有的分片数量是否与之前分片数量相同;若相同,不执行任何操作;若不同,触发分片抢占或丢弃操作。步骤S4,当监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数。在本专利技术实施例中,本文档来自技高网...

【技术保护点】
1.一种基于zookeeper的分布式任务协调的方法,其特征在于包括:将待执行的任务抽象成有限个初始分片,并经所述有限个初始分片存储在zookeeper中;初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;延迟启动两个监听线程,分别监听节点变化和分片变化;当所述监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数;判断所述初始最大片数以及所述更新最大片数是否相同;若不同,进行分片抢占或丢弃操作,并将结果通知业务程序。

【技术特征摘要】
1.一种基于zookeeper的分布式任务协调的方法,其特征在于包括:将待执行的任务抽象成有限个初始分片,并经所述有限个初始分片存储在zookeeper中;初始化zookeeper的节点,并计算初始节点允许抢占的初始最大片数;延迟启动两个监听线程,分别监听节点变化和分片变化;当所述监听线程发现节点或分片变化后,重新计算节点允许抢占的最大片数,得到更新最大片数;判断所述初始最大片数以及所述更新最大片数是否相同;若不同,进行分片抢占或丢弃操作,并将结果通知业务程序。2.根据权利要求1所述的方法,其特征在于,所述初始最大片数的计算步骤包括:判断所述初始分片的数量是否为初始节点的整数倍;若是,则所述初始最大片数为所述初始分片的数量相对于所述初始节点的数量的倍数;若否,则所述初始最大片数为所述初始分片的数量与所述初始节点的数量的商加1。3.根据权利要求1所述的方法,其特征在于,在重新计算所述更新最大片数之后,利用所述监听线程持续监听节点变化和分片变化,并在发生变化后重复计算所述更新最大片数。4.根据权利要求1所述的方法,其特征在于,进行分片抢占或丢弃操作的步骤,包括:若所述更新最大片数大于所述初始最大片数,使所述节点放弃已经占用的分片,并重新计算所述更新最大片数;若所述更新最大片数小于所述初始最大片数,尝试抢占未被占用的分片,并重新计算所述更新最大片数。5.一种基于zookeeper的分布式任务协调的装置,其特征在于包括:任务设定单元,用于将待执行的任务抽象成有限个初始分片,并经所述有限个初始分片存储在zookeeper中;注册启动单元,用于初始化zookeeper...

【专利技术属性】
技术研发人员:成鑫程名
申请(专利权)人:重庆八戒电子商务有限公司
类型:发明
国别省市:重庆,50

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

1