【技术实现步骤摘要】
一种基于Zookeeper的对等式调度方法和装置
本专利技术涉及通信
,特别涉及一种基于开放源码的分布式应用程序协调服务(Zookeeper)的对等式调度方法和装置。
技术介绍
现有的分布式调度系统大多采用单点或主从架构,当添加某个离线计算或在线计算任务后,调度服务根据各个应用程序所在机器的资源使用情况进行任务分配,然后以某种方式通知应用程序,应用程序根据接到的通知去处理调度的任务。在目前分布式服务的调度都是采用一个独立的调度服务进行调度操作,如果调度服务发生故障,会导致整个分布式服务不可用,即使调度服务采用主从架构,依然不能保证调度服务完全可用。
技术实现思路
有鉴于此,本申请提供一种基于Zookeeper的对等式调度方法和装置,能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。为解决上述技术问题,本申请的技术方案是这样实现的:一种基于Zookeeper的对等式调度方法,应用于应用服务器上,该方法包括:通过调用API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。一种基于Zookeeper的对等 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。