CN111163117B - 一种基于Zookeeper的对等式调度方法和装置 - Google Patents
一种基于Zookeeper的对等式调度方法和装置 Download PDFInfo
- Publication number
- CN111163117B CN111163117B CN201811319976.XA CN201811319976A CN111163117B CN 111163117 B CN111163117 B CN 111163117B CN 201811319976 A CN201811319976 A CN 201811319976A CN 111163117 B CN111163117 B CN 111163117B
- Authority
- CN
- China
- Prior art keywords
- service
- zookeeper
- scheduling
- nodes
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种基于Zookeeper的对等式调度方法和装置,应用于应用服务器上,该方法包括:通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册。该方法能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种基于开放源码的分布式应用程序协调服务(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的对等式调度方法,将原本调度服务需要处理的逻辑封装到调度应用程序接口(Application Programming Interface,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节点和Task2节点。
针对Data节点包括的子节点为数据类型节点,以DataType1节点和DataType2节点为例;每个数据类型节点包括的子节点为具体的数据节点,图1中以举例为:数据节点1(DataNode1)和数据节点2(DataNode2)。
上述各节点在具体实现时,对应的内容根据实际情况确定,对应一个名称,或者对应一组信息、数据等。
下面结合附图,详细说明本申请实施例中基于Zookeeper的对等式调度过程。
各应用服务器通过Zookeeper集群地址链接调度服务器上的Zookeeper服务集群,通过Zookeeper的API实现对各服务和任务的调度。
实施例一
服务注册。
参见图2,图2为本申请实施例一中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤201,应用服务器通过调用API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径。
在Zookeeper树结构中查找时,使用服务的名称、服务的IP和端口号查找,如果能够查找到对应的信息,即查找到该服务的节点路径;否则,表示未查找到。
步骤202,该应用服务器若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册。
在Zookeeper树结构中创建任一服务的节点路径时,即将服务名称作为一个节点增加在服务的一个子节点中,将该服务的IP+端口号作为一个服务实例节点,并在该服务实例节点的子节点中建立临时节点和dispatchinfo节点;当临时节点建立完成时,表示建立一条完成的节点路径,完成该服务的注册。
若查找到对应的节点路径,确定该Zookeeper节点路径中是否包括临时节点;如果是,确定完成所述服务的注册;否则,针对所述服务创建临时节点,完成所述服务的注册。
实施例二
计算型服务启动后的调度逻辑。
参见图3,图3为本申请实施例二中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤301,应用服务器需要启动计算型服务,且所述计算型服务已注册成功时,通过调用API在Zookeeper树结构中的任务节点获取对应的计算任务。
若所述计算型服务未注册,则使用实施例一种的服务注册过程进行服务注册。
步骤302,该应用服务器针对待分配的计算任务,获取该计算型服务对应的存活的机器的资源使用率,按照负载均衡原则将待分配的计算任务分配给所述存活的机器。
实施例三
检索型服务启动后的调度逻辑。
参见图4,图4为本申请实施例三中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤401,应用服务器需要启动检索型服务,且所述检索型服务已注册成功时,通过调用API在Zookeeper树结构中获取该类型检索服务对应所有检索服务,以及所有数据节点。
若所述检索型服务未注册,则使用实施例一种的服务注册过程进行服务注册。
步骤402,该应用服务器通过哈希算法为每个检索服务确定对应的数据节点,并记录到zookeeper中。
实施例四
添加任务的调度逻辑。
参见图5,图5为本申请实施例四中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤501,应用服务器调度API基于zookeeper的节点监听机制监听到需要添加的离线计算任务时,调度API利用基于zookeeper的分布式锁机制来判断执行添加该离线计算任务操作的应用服务器。
步骤502,该应用服务器当确定本应用服务器获得执行添加所述离线计算任务的权限时,通过调度API添加该离线计算任务。
步骤503,该应用服务器添加该离线计算任务后,释放分布式锁。
实施例五
计算服务异常退出的调度逻辑。
参见图6,图6为本申请实施例五中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤601,当应用服务器调度API通过zookeeper的节点Watch机制监听到任一计算服务已挂掉,则通过分布式锁判断调度该计算服务的应用服务器。
Watch机制:client可以监控每个节点的变化,当产生变化会给client产生一个事件。
步骤602,当该应用服务器确定本应用服务器获得调度所述计算服务的执行权限时,判断已挂掉的计算服务是否有未完成的计算任务,如果是,则调度执行所述未完成的计算任务,并将调度结果存储在zookeeper和数据库中。
实施例六
检索服务异常退出的调度逻辑。
参见图7,图7为本申请实施例六中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤701,当应用服务器调度API通过zookeeper的节点Watch机制监听到任一检索服务已挂掉,则通过分布式锁判断调度该检索服务的应用服务器。
步骤702,当该应用服务器确定本应用服务器获得调度所述检索服务的执行权限时,判断已挂掉的检索服务对应的数据节点;并调度API将所述数据节点重新分配对应的检索服务,并将分配结果更新在zookeeper中,同时更新本地数据库。
步骤703,当该应用服务器确定本应用服务器未获得调度所述检索服务的执行权限时,通过zookeeper的节点Watch机制确定zookeeper中有数据变更时,在本地进行数据库的更新。
实施例七
删除任一服务的调度逻辑。
参见图8,图8为本申请实施例七中基于Zookeeper的对等式调度流程示意图。具体步骤为:
步骤801,该应用服务器需要删除任一任务。
步骤802,判断需要删除的任务是否已执行,如果是,执行步骤803;否则,执行步骤804。
步骤803,通过消息队列通知调度该任务的应用服务器取消该任务,结束本流程。
步骤804,在zookeeper中删除该任务对应的节点。
本申请在每个实施例中通过API进行调度过程中,都会有日志生成,应用服务器可以将记录的日志存储在本地,或远端服务器上,以便相关信息的查找。
本申请实施例中基于zookeeper的对等式调度系统的设计方案。将原本调度服务需要处理的逻辑封装到调度API中,各个服务通过集成该调度API,也具备了对整个集群进行任务调度的功能。通过zookeeper的分布式锁机制来决定执行调度操作的服务,这种对等式的设计能够最大限度保证整个集群的健壮性;调度结果保存在zookeeper中,并通过zookeeper的节点watch机制实时将调度结果通知到对应的服务。
基于同样的发明构思,本申请还提供一种基于Zookeeper的对等式调度装置,应用于应用服务器上。参见图9,图9为本申请实施中应用于上述技术的装置结构示意图。该装置包括:调度单元901和处理单元902;
调度单元901,用于通过调用API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;
处理单元902,用于若调度单元901未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;
其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点。
较佳地,
处理单元902,进一步用于若查找到对应的节点路径,确定该Zookeeper节点路径中是否包括临时节点;如果是,确定完成所述服务的注册;否则,针对所述服务创建临时节点,完成所述服务的注册,所述临时节点表示对应的服务实例是否存活。
较佳地,
调度单元901,进一步用于需要启动计算型服务,且所述计算型服务已注册成功时,通过调用API在Zookeeper树结构中的任务节点获取对应的计算任务;
处理单元902,进一步用于针对待分配的计算任务,获取该计算型服务对应的存活的机器的资源使用率,按照负载均衡原则将待分配的计算任务分配给所述存活的机器;
其中,所述Zookeeper树结构的子节点还包括机器节点和任务节点,所述机器节点的子节点包括机器子节点,使用机器的IP标识,所述机器子节点包括临时节点和机器信息节点;所述临时节点表示对应机器是否存活。
较佳地,
调度单元901,进一步用于需要启动检索型服务,且所述检索型服务已注册成功时,通过调用API在Zookeeper树结构中获取该类型检索服务对应所有检索服务,以及所有数据节点;
处理单元902,进一步用于通过哈希算法为每个检索服务确定对应的数据节点,并记录到zookeeper中;
其中,所述Zookeeper树结构的子节点还包括数据节点。
较佳地,
调度单元901,进一步用于调度API基于zookeeper的节点监听机制监听到需要添加的离线计算任务时,调度API利用基于zookeeper的分布式锁机制来判断执行添加该离线计算任务操作的应用服务器;
处理单元902,进一步用于当本应用服务器获得执行添加所述离线计算任务的权限时,通过调度API添加该离线计算任务;添加该离线计算任务后,释放分布式锁。
较佳地,
调度单元901,进一步用于当调度API通过zookeeper的节点Watch机制监听到任一计算服务已挂掉,则通过分布式锁判断调度该计算服务的应用服务器;
处理单元902,进一步用于当本应用服务器获得调度所述计算服务的执行权限时,判断已挂掉的计算服务是否有未完成的计算任务,如果是,则调度执行所述未完成的计算任务,并将调度结果存储在zookeeper和数据库中。
较佳地,
调度单元901,进一步用于当调度API通过zookeeper的节点Watch机制监听到任一检索服务已挂掉,则通过分布式锁判断调度该检索服务的应用服务器;
处理单元902,进一步用于当本应用服务器获得调度所述检索服务的执行权限时,判断已挂掉的检索服务对应的数据节点;并调度API将所述数据节点重新分配对应的检索服务,并将分配结果更新在zookeeper中,同时更新本地数据库;当本应用服务器未获得调度所述检索服务的执行权限时,通过zookeeper的节点Watch机制确定zookeeper中有数据变更时,在本地进行数据库的更新。
较佳地,
调度单元901,进一步用于判断需要删除的任务是否已执行,如果是,通过消息队列通知调度该任务的应用服务器取消该任务;否则,触发处理单元902在zookeeper中删除该任务对应的节点。
较佳地,所述装置进一步包括:记录单元903;
记录单元903,用于将通过API进行调度过程的日志存储在本地,或远端服务器上。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
本申请实施例中还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现实施例一到实施例七所述的基于Zookeeper的对等式调度方法的步骤。
另外本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现实施例一到实施例七所述的基于Zookeeper的对等式调度方法的步骤。
综上所述,本申请通过将原本调度服务需要处理的逻辑封装到调度API中,各个应用服务器上的服务通过集成该调度API,也具备了对整个集群进行任务调度的功能;通过zookeeper的分布式锁机制来决定执行调度操作的服务,这种对等式的设计能够最大限度保证整个集群的健壮性;调度结果保存在zookeeper中,并通过zookeeper的节点watch机制实时将调度结果通知到对应的服务。该方案能够避免因为调度服务不可用而导致的整个集群瘫痪的情况发生。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (18)
1.一种基于Zookeeper的对等式调度方法,其特征在于,应用于应用服务器上,该方法包括:
通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;
若未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;
其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点;
其中,所述方法进一步包括:
若查找到对应的节点路径,确定该Zookeeper节点路径中是否包括临时节点;如果是,确定完成所述服务的注册;否则,针对所述服务创建临时节点,完成所述服务的注册,所述临时节点表示对应的服务实例是否存活。
2.根据权利要求1所述的方法,其特征在于,所述Zookeeper树结构的子节点还包括机器节点和任务节点,所述机器节点的子节点包括机器子节点,使用机器的IP标识,所述机器子节点包括临时节点和机器信息节点;所述临时节点表示对应机器是否存活;
需要启动计算型服务,且所述计算型服务已注册成功时,通过调用API在Zookeeper树结构中的任务节点获取对应的计算任务;
针对待分配的计算任务,获取该计算型服务对应的存活的机器的资源使用率,按照负载均衡原则将待分配的计算任务分配给所述存活的机器。
3.根据权利要求1所述的方法,其特征在于,
所述Zookeeper树结构的子节点还包括数据节点;
所述方法进一步包括:
需要启动检索型服务,且所述检索型服务已注册成功时,通过调用API在Zookeeper树结构中获取该类型检索服务对应所有检索服务,以及所有数据节点,通过哈希算法为每个检索服务确定对应的数据节点,并记录到zookeeper中。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
调度API基于zookeeper的节点监听机制监听到需要添加的离线计算任务时,调度API利用基于zookeeper的分布式锁机制来判断执行添加该离线计算任务操作的应用服务器;
当本应用服务器获得执行添加所述离线计算任务的权限时,通过调度API添加该离线计算任务;
添加该离线计算任务后,释放分布式锁。
5.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当调度API通过zookeeper的节点Watch机制监听到任一计算服务已挂掉,则通过分布式锁判断调度该计算服务的应用服务器;
当本应用服务器获得调度所述计算服务的执行权限时,判断已挂掉的计算服务是否有未完成的计算任务,如果是,则调度执行所述未完成的计算任务,并将调度结果存储在zookeeper和数据库中。
6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当调度API通过zookeeper的节点Watch机制监听到任一检索服务已挂掉,则通过分布式锁判断调度该检索服务的应用服务器;
当本应用服务器获得调度所述检索服务的执行权限时,判断已挂掉的检索服务对应的数据节点;并调度API将所述数据节点重新分配对应的检索服务,并将分配结果更新在zookeeper中,同时更新本地数据库;
当本应用服务器未获得调度所述检索服务的执行权限时,通过zookeeper的节点Watch机制确定zookeeper中有数据变更时,在本地进行数据库的更新。
7.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
判断需要删除的任务是否已执行,如果是,通过消息队列通知调度该任务的应用服务器取消该任务;否则,在zookeeper中删除该任务对应的节点。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法进一步包括:
将通过API进行调度过程的日志存储在本地,或远端服务器上。
9.一种基于Zookeeper的对等式调度装置,其特征在于,应用于应用服务器上,该装置包括:调度单元和处理单元;
所述调度单元,用于通过调用应用程序接口API在调度服务器的Zookeeper树结构中查找需注册的服务的节点路径;
所述处理单元,用于若所述调度单元未查找到对应的节点路径,则在Zookeeper树结构中创建所述服务对应的节点路径,完成所述服务的注册;
其中,所述Zookeeper树结构的子节点包括服务节点,服务节点的子节点包括服务子节点,使用服务名标识,所述服务子节点的子节点包括服务实例节点,使用IP+端口号标识,所述服务实例节点的子节点包括临时节点和信息节点;
其中,
所述处理单元,进一步用于若查找到对应的节点路径,确定该Zookeeper节点路径中是否包括临时节点;如果是,确定完成所述服务的注册;否则,针对所述服务创建临时节点,完成所述服务的注册,所述临时节点表示对应的服务实例是否存活。
10.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于需要启动计算型服务,且所述计算型服务已注册成功时,通过调用API在Zookeeper树结构中的任务节点获取对应的计算任务;
所述处理单元,进一步用于针对待分配的计算任务,获取该计算型服务对应的存活的机器的资源使用率,按照负载均衡原则将待分配的计算任务分配给所述存活的机器;
其中,所述Zookeeper树结构的子节点还包括机器节点和任务节点,所述机器节点的子节点包括机器子节点,使用机器的IP标识,所述机器子节点包括临时节点和机器信息节点;所述临时节点表示对应机器是否存活。
11.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于需要启动检索型服务,且所述检索型服务已注册成功时,通过调用API在Zookeeper树结构中获取该类型检索服务对应所有检索服务,以及所有数据节点;
所述处理单元,进一步用于通过哈希算法为每个检索服务确定对应的数据节点,并记录到Zookeeper中;
其中,所述Zookeeper树结构的子节点还包括数据节点。
12.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于调度API基于zookeeper的节点监听机制监听到需要添加的离线计算任务时,调度API利用基于zookeeper的分布式锁机制来判断执行添加该离线计算任务操作的应用服务器;
所述处理单元,进一步用于当本应用服务器获得执行添加所述离线计算任务的权限时,通过调度API添加该离线计算任务;添加该离线计算任务后,释放分布式锁。
13.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于当调度API通过zookeeper的节点Watch机制监听到任一计算服务已挂掉,则通过分布式锁判断调度该计算服务的应用服务器;
所述处理单元,进一步用于当本应用服务器获得调度所述计算服务的执行权限时,判断已挂掉的计算服务是否有未完成的计算任务,如果是,则调度执行所述未完成的计算任务,并将调度结果存储在zookeeper和数据库中。
14.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于当调度API通过zookeeper的节点Watch机制监听到任一检索服务已挂掉,则通过分布式锁判断调度该检索服务的应用服务器;
所述处理单元,进一步用于当本应用服务器获得调度所述检索服务的执行权限时,判断已挂掉的检索服务对应的数据节点;并调度API将所述数据节点重新分配对应的检索服务,并将分配结果更新在zookeeper中,同时更新本地数据库;当本应用服务器未获得调度所述检索服务的执行权限时,通过zookeeper的节点Watch机制确定zookeeper中有数据变更时,在本地进行数据库的更新。
15.根据权利要求9所述的装置,其特征在于,
所述调度单元,进一步用于判断需要删除的任务是否已执行,如果是,通过消息队列通知调度该任务的应用服务器取消该任务;否则,触发所述处理单元在zookeeper中删除该任务对应的节点。
16.根据权利要求9-15任一项所述的装置,其特征在于,所述装置进一步包括:记录单元;
所述记录单元,用于将通过API进行调度过程的日志存储在本地,或远端服务器上。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811319976.XA CN111163117B (zh) | 2018-11-07 | 2018-11-07 | 一种基于Zookeeper的对等式调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811319976.XA CN111163117B (zh) | 2018-11-07 | 2018-11-07 | 一种基于Zookeeper的对等式调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111163117A CN111163117A (zh) | 2020-05-15 |
CN111163117B true CN111163117B (zh) | 2023-01-31 |
Family
ID=70554598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811319976.XA Active CN111163117B (zh) | 2018-11-07 | 2018-11-07 | 一种基于Zookeeper的对等式调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163117B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650592B (zh) * | 2021-01-06 | 2024-04-19 | 杭州当虹科技股份有限公司 | 一种基于zookeeper的任务负载均衡及高可用系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159767A (zh) * | 2015-09-06 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 用于基于zookeeper实现分布式调度的方法和装置 |
CN105187499A (zh) * | 2015-08-07 | 2015-12-23 | 北京思特奇信息技术股份有限公司 | 一种基于zookeeper双平面数据架构的分布式调度方法及系统 |
CN105791354A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 作业调度方法和云调度服务器 |
WO2016179894A1 (zh) * | 2015-05-12 | 2016-11-17 | 网宿科技股份有限公司 | 基于cdn的内容管理系统 |
CN106993019A (zh) * | 2016-11-29 | 2017-07-28 | 上海壹账通金融科技有限公司 | 分布式任务调度方法和系统 |
CN108132833A (zh) * | 2017-12-08 | 2018-06-08 | 广州视源电子科技股份有限公司 | 一种基于zookeeper技术的分布式定时任务调度方法和装置 |
-
2018
- 2018-11-07 CN CN201811319976.XA patent/CN111163117B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791354A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 作业调度方法和云调度服务器 |
WO2016179894A1 (zh) * | 2015-05-12 | 2016-11-17 | 网宿科技股份有限公司 | 基于cdn的内容管理系统 |
CN105187499A (zh) * | 2015-08-07 | 2015-12-23 | 北京思特奇信息技术股份有限公司 | 一种基于zookeeper双平面数据架构的分布式调度方法及系统 |
CN105159767A (zh) * | 2015-09-06 | 2015-12-16 | 北京京东尚科信息技术有限公司 | 用于基于zookeeper实现分布式调度的方法和装置 |
CN106993019A (zh) * | 2016-11-29 | 2017-07-28 | 上海壹账通金融科技有限公司 | 分布式任务调度方法和系统 |
CN108132833A (zh) * | 2017-12-08 | 2018-06-08 | 广州视源电子科技股份有限公司 | 一种基于zookeeper技术的分布式定时任务调度方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于ZooKeeper的一种分布式系统架构设计与实现;陈天伟等;《通信技术》;20180110(第01期);全文 * |
基于Zookeeper的分布式锁服务及性能优化;刘芬等;《计算机研究与发展》;20141215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111163117A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737270B (zh) | 一种服务器集群的资源管理方法和装置 | |
US9396031B2 (en) | Distributed UIMA cluster computing (DUCC) facility | |
CN112000448A (zh) | 基于微服务架构的应用管理方法 | |
US10133797B1 (en) | Distributed heterogeneous system for data warehouse management | |
JP2014528126A (ja) | 複数のターゲットへのマルチソースプッシュ通知の分配 | |
CN112416581B (zh) | 定时任务的分布式调用系统 | |
US11757977B2 (en) | Rule-based action triggering in a provider network | |
US10754705B2 (en) | Managing metadata hierarch for a distributed processing system with depth-limited hierarchy subscription | |
CN102385536B (zh) | 一种实现并行计算的方法及系统 | |
US9973306B2 (en) | Freshness-sensitive message delivery | |
AU2022203400A1 (en) | Rule-based action triggering in a provider network | |
JP6067714B2 (ja) | イベントデータを取得するスケールアウトシステム | |
US10331484B2 (en) | Distributed data platform resource allocator | |
CN108733515A (zh) | 文件备份的调度方法、文件备份方法、装置及存储介质 | |
CN111163117B (zh) | 一种基于Zookeeper的对等式调度方法和装置 | |
US11068487B2 (en) | Event-stream searching using compiled rule patterns | |
CN115225645B (zh) | 一种服务更新方法、装置、系统和存储介质 | |
CN111104212A (zh) | 一种调度任务执行方法、装置、电子设备及存储介质 | |
CN115373886A (zh) | 服务群组容器停机方法、装置、计算机设备和存储介质 | |
CN113220480A (zh) | 分布式的数据任务跨云调度系统及方法 | |
US20160127253A1 (en) | Routing handler for rule-based action triggering | |
CN110764882A (zh) | 分布式管理方法、分布式管理系统及装置 | |
JP5222346B2 (ja) | 情報監視方法 | |
CN118055000A (zh) | 告警信息的生成方法和装置、存储介质及电子设备 | |
CN116302466A (zh) | 一种数据任务执行方法、装置、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |