一种基于Zookeeper的对等式调度方法和装置制造方法及图纸

技术编号:24176391 阅读:36 留言:0更新日期:2020-05-16 04:48
本申请提供了一种基于Zookeeper的对等式调度方法和装置,应用于应用服务器上,该方法包括:通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册。该方法能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。

【技术实现步骤摘要】
一种基于Zookeeper的对等式调度方法和装置
本专利技术涉及通信
,特别涉及一种基于开放源码的分布式应用程序协调服务(Zookeeper)的对等式调度方法和装置。
技术介绍
现有的分布式调度系统大多采用单点或主从架构,当添加某个离线计算或在线计算任务后,调度服务根据各个应用程序所在机器的资源使用情况进行任务分配,然后以某种方式通知应用程序,应用程序根据接到的通知去处理调度的任务。在目前分布式服务的调度都是采用一个独立的调度服务进行调度操作,如果调度服务发生故障,会导致整个分布式服务不可用,即使调度服务采用主从架构,依然不能保证调度服务完全可用。
技术实现思路
有鉴于此,本申请提供一种基于Zookeeper的对等式调度方法和装置,能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。为解决上述技术问题,本申请的技术方案是这样实现的:一种基于Zookeeper的对等式调度方法,应用于应用服务器上,该方法包括:通过调用API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。一种基于Zookeeper的对等式调度装置,应用于应用服务器上,该装置包括:调度单元和处理单元;所述调度单元,用于通过调用API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;所述处理单元,用于若所述调度单元未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述基于Zookeeper的对等式调度方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述基于Zookeeper的对等式调度方法的步骤。由上面的技术方案可知,本申请中将原本调度服务需要处理的逻辑封装到调度API中,各个应用服务器上的服务通过集成该调度API,也具备了对整个集群进行任务调度的功能。该方案能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。附图说明图1为本申请实施例中Zookeeper树结构示意图;图2为本申请实施例一中基于Zookeeper的对等式调度流程示意图;图3为本申请实施例二中基于Zookeeper的对等式调度流程示意图;图4为本申请实施例三中基于Zookeeper的对等式调度流程示意图;图5为本申请实施例四中基于Zookeeper的对等式调度流程示意图;图6为本申请实施例五中基于Zookeeper的对等式调度流程示意图;图7为本申请实施例六中基于Zookeeper的对等式调度流程示意图;图8为本申请实施例七中基于Zookeeper的对等式调度流程示意图;图9为本申请实施中应用于上述技术的装置结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本专利技术的技术方案进行详细说明。本申请实施例中提供一种基于Zookeeper的对等式调度方法,将原本调度服务需要处理的逻辑封装到调度应用程序接口(ApplicationProgrammingInterface,API)中,各个应用服务器上的服务通过集成该调度API,也具备了对整个集群进行任务调度的功能;通过zookeeper的分布式锁机制来决定执行调度操作的服务,这种对等式的设计能够最大限度保证整个集群的健壮性;调度结果保存在zookeeper中,并通过zookeeper的节点观察(watch)机制实时将调度结果通知到对应的服务。该方案能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。本申请实施例中在应用服务器上部署各种应用服务,在调度服务器上部署Zookeeper,由多个应用服务器和调度服务器组成一个基于Zookeeper的对等式调度系统,在具体实现时,Zookeeper可以部署在一个调度服务器上,也可以部署在多个调度服务器中,本申请实施例中对此均不进行限制。本申请实施例中Zookeeper上的信息可以以Zookeeper树结构的方式存储,也可以称为Zookeeper节点关系组织。参见图1,图1为本申请实施例中Zookeeper树结构示意图。图1中的Zookeeper节点(/Zkroot)包括四个子节点,分别为:Service节点、Machine节点、Task节点和Data节点。针对Service节点包括多个Service子节点,如图1中举例的2个Service子节点:Service1和Service2;使用服务名称标识针对每个Service子节点包括多个服务实例节点,如图1中举例Service1及节点包括2个服务实例节点,使用IP+端口号标识,分别为:192.168.19.1:9000和192.168.19.2:9000。针对每个服务实例节点包括2个子节点,分别为临时节点(tmp节点)和信息节点(dispatchinfo节点);其中,临时节点用于表示对应的服务实例是否存活;dispatchinfo节点用于存储资源,和/或任务的调度信息。Machine节点包括多个机器子节点,使用机器的IP标识,如图1中举例机器子节点包括两个,分别为:192.168.19.1子节点,和192.168.19.2子节点。针对每个机器子节点包括临时节点(tmp节点)和机器信息节点(MachineInfo节点),所述临时节点表示对应机器是否存活;MachineInfo节点存储机器的资源使用情况,包括CPU,GPU,磁盘IO,网络IO等使用情况。针对Task节点包括的子节点为任务类型节点,以TaskType1和TaskType2为例,每个任务类型包括的子节点为具体的任务,即任务节点,图1中举例为:Task1节点本文档来自技高网...

【技术保护点】
1.一种基于Zookeeper的对等式调度方法,其特征在于,应用于应用服务器上,该方法包括:/n通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;/n若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;/n其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。/n

【技术特征摘要】
1.一种基于Zookeeper的对等式调度方法,其特征在于,应用于应用服务器上,该方法包括:
通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;
若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;
其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。


2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
若查找到对应的节点路径,确定该Zookeeper节点路径中是否包括临时节点;如果是,确定完成所述服务的注册;否则,针对所述服务创建临时节点,完成所述服务的注册,所述临时节点表示对应的服务实例是否存活。


3.根据权利要求1所述的方法,其特征在于,所述Zookeeper树结构的子节点还包括机器节点和任务节点,所述机器节点的子节点包括机器子节点,使用机器的IP标识,所述机器子节点包括临时节点和机器信息节点;所述临时节点表示对应机器是否存活;
需要启动计算型服务,且所述计算型服务已注册成功时,通过调用API在Zookeeper树结构中的任务节点获取对应的计算任务;
针对待分配的计算任务,获取该计算型服务对应的存活的机器的资源使用率,按照负载均衡原则将待分配的计算任务分配给所述存活的机器。


4.根据权利要求1所述的方法,其特征在于,
所述Zookeeper树结构的子节点还包括数据节点;
所述方法进一步包括:
需要启动检索型服务,且所述检索型服务已注册成功时,通过调用API在Zookeeper树结构中获取该类型检索服务对应所有检索服务,以及所有数据节点,通过哈希算法为每个检索服务确定对应的数据节点,并记录到zookeeper中。


5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
调度API基于zookeeper的节点监听机制监听到需要添加的离线计算任务时,调度API利用基于zookeeper的分布式锁机制来判断执行添加该离线计算任务操作的应用服务器;
当本应用服务器获得执行添加所述离线计算任务的权限时,通过调度API添加该离线计算任务;
添加该离线计算任务后,释放分布式锁。


6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当调度API通过zookeeper的节点Watch机制监听到任一计算服务已挂掉,则通过分布式锁判断调度该计算服务的应用服务器;
当本应用服务器获得调度所述计算服务的执行权限时,判断已挂掉的计算服务是否有未完成的计算任务,如果是,则调度执行所述未完成的计算任务,并将调度结果存储在zookeeper和数据库中。


7.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当调度API通过zookeeper的节点Watch机制监听到任一检索服务已挂掉,则通过分布式锁判断调度该检索服务的应用服务器;
当本应用服务器获得调度所述检索服务的执行权限时,判断已挂掉的检索服务对应的数据节点;并调度API将所述数据节点重新分配对应的检索服务,并将分配结果更新在zookeeper中,同时更新本地数据库;
当本应用服务器未获得调度所述检索服务的执行权限时,通过zookeeper的节点Watch机制确定zookeeper中有数据变更时,在本地进行数据库的更新。


8.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
判断需要删除的任务是否已执行,如果是,通过消息队列通知调度该任务的应用服务器取消该任务;否则,在zookeeper中删除该任务对应的节点。


9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法进一步包括:
将通过API进行调度过程的日志存储在本地,或远端服务器上。


10.一种基于Zookeeper的对等式调度装置,其特征在于,应用于应用服务器上,该装置包括:调度单元和处理单元;
所述调度单元,用于通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;
所述处理单元,用于若所述调度单元未查找到对应的节点路径,则在Zooke...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1