CN111930482A - 基于节点集群的任务处理方法、装置、设备及存储介质 - Google Patents
基于节点集群的任务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111930482A CN111930482A CN202010689359.XA CN202010689359A CN111930482A CN 111930482 A CN111930482 A CN 111930482A CN 202010689359 A CN202010689359 A CN 202010689359A CN 111930482 A CN111930482 A CN 111930482A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- computing node
- information
- computing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及计算机通信领域,公开了一种基于节点集群的任务处理方法、装置、设备及存储介质,该方法包括:接收计算节点基于预设通信协议发送的任务获取心跳帧并提取其中包含的节点标识,根据节点标识获取计算节点对应的待处理任务;将待处理任务的任务信息返回至计算节点,之后在接收到计算节点基于任务信息反馈的任务处理结果时,对任务处理结果进行储存。由于本发明中心服务器接收的是计算节点根据预设通信协议将任务获取请求和心跳帧两种数据报文合并后的任务获取心跳帧,相比于对数据报文分别接收的方式,大大降低了对中心服务器的网络资源占用,同时通过节点标识来确定和分配待处理任务,能够保证任务的准确分配,提高了任务处理效率。
Description
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种基于节点集群的任务处理方法、装置、设备及存储介质。
背景技术
HTTP协议是一个基于TCP/IP通信协议来传递数据的上层协议,它属于应用层的面向对象的协议,由于其简洁、快速的收发请求数据的方式,十分适用于分布式系统中。
计算机集群系统作为分布式系统的一种具体应用,其集群中的计算节点的心跳帧和任务请求是相互独立两个数据报文,这样虽然在很大程度上保证两者的独立性,即计算节点执行任务的过程中仍可保持心跳帧正常发送,但同时也带来了一定的网络资源开销,尤其是当任务数量巨大时,过多的网络资源占用会导致整个系统存在崩溃或宕机的风险,不利于系统的平稳运行以及任务调度。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种基于节点集群的任务处理方法、装置、设备及存储介质,旨在解决现有分布式系统任务的处理方式对网络资源的依赖程度较大,无法适应大批量任务场景的技术问题。
为实现上述目的,本发明提供了一种基于节点集群的任务处理方法,所述方法包括以下步骤:
接收计算节点基于预设通信协议发送的任务获取心跳帧;
提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
优选地,所述提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务的步骤,包括:
提取所述任务获取心跳帧中包含的节点标识;
根据所述节点标识获取所述计算节点对应的任务处理类型;
在任务列表中查找是否存在所述任务处理类型对应的待处理任务标识;
若存在,则获取所述待处理任务标识对应的待处理任务。
优选地,所述获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点的步骤,包括:
获取所述待处理任务对应的待处理任务标识、任务类型以及任务需求参数;
将所述待处理任务标识、所述任务类型以及所述任务需求参数作为任务信息;
根据所述任务信息生成所述任务获取心跳帧对应的响应请求,并将所述响应请求发送至所述计算节点。
优选地,所述接收计算节点基于预设通信协议发送的任务获取心跳帧的步骤之前,所述方法还包括:
接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识;
将所述节点标识发送至所述计算节点,以使所述计算节点根据所述节点标识返回任务获取心跳帧。
优选地,所述接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识的步骤,包括:
接收计算节点发送的节点注册请求,提取所述节点注册请求中包含的节点属性信息;
根据所述节点属性信息对所述计算节点进行合法性判断;
在所述合法性判断通过时,检测所述计算节点是否属于旧有节点;
若不属于,则为所述计算节点生成对应的节点标识;
若属于,则获取所述计算节点的注册信息,并从所述注册信息中提取所述计算节点的节点标识。
优选地,所述根据所述节点属性信息对所述计算节点进行合法性判断的步骤,包括:
读取所述节点属性信息中包含的认证信息;
从所述认证信息中读取验证密钥,以及节点地址信息;
检测所述节点地址信息是否属于预设地址白名单,若属于,则根据所述验证密钥对所述计算节点进行合法性判断。
此外,为实现上述目的,本发明还提出一种基于节点集群的任务处理装置,所述装置包括:
请求接收模块,用于接收计算节点基于预设通信协议发送的任务获取心跳帧;
任务获取模块,用于提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
任务分配模块,用于获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
结果处理模块,用于在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
此外,为实现上述目的,本发明还提出一种基于节点集群的任务处理设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于节点集群的任务处理程序,所述基于节点集群的任务处理程序配置为实现如上文所述的基于节点集群的任务处理方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于节点集群的任务处理程序,所述基于节点集群的任务处理程序被处理器执行时实现如上文所述的基于节点集群的任务处理方法的步骤。
此外,为实现上述目的,本发明还提出一种基于节点集群的任务处理方法,所述方法包括以下步骤:
在当前节点状态处于预设状态时,基于预设通信协议根据节点标识生成任务获取心跳帧;
将所述任务获取心跳帧发送至中心服务器,并获取所述中心服务器基于所述任务获取心跳帧反馈的任务信息;
对所述任务信息中包含的待处理任务进行处理,并将任务处理结果发送至所述中心服务器。
本发明通过接收计算节点基于预设通信协议发送的任务获取心跳帧;然后提取任务获取心跳帧中包含的节点标识,根据节点标识获取计算节点对应的待处理任务;再获取待处理任务的任务信息,并将任务信息返回至计算节点;之后在接收到计算节点基于任务信息反馈的任务处理结果时,对任务处理结果进行储存。由于本发明中心服务器接收的是计算节点根据预设通信协议将任务获取请求和心跳帧两种数据报文合并后的任务获取心跳帧,相比于传统的对数据报文分别接收的方式,大大降低了对中心服务器的网络资源占用,同时,通过节点标识来对待处理任务的确定和分配也能保证任务的准确分配,提高了任务处理效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于节点集群的任务处理设备的结构示意图;
图2为本发明基于节点集群的任务处理方法第一实施例的流程示意图;
图3为本发明基于节点集群的任务处理方法第二实施例的流程示意图;
图4为本发明基于节点集群的任务处理装置第一实施例的结构框图。
图5为本发明基于节点集群的任务处理方法另一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于节点集群的任务处理设备结构示意图。
如图1所示,该基于节点集群的任务处理设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于节点集群的任务处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及基于节点集群的任务处理程序。
在图1所示的基于节点集群的任务处理设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于节点集群的任务处理设备中的处理器1001、存储器1005可以设置在基于节点集群的任务处理设备中,所述基于节点集群的任务处理设备通过处理器1001调用存储器1005中存储的基于节点集群的任务处理程序,并执行本发明实施例提供的基于节点集群的任务处理方法。
本发明实施例提供了一种基于节点集群的任务处理方法,参照图2,图2为本发明基于节点集群的任务处理方法第一实施例的流程示意图。本实施例的执行主体为中心服务器。
本实施例中,所述基于节点集群的任务处理方法包括以下步骤:
步骤S10:接收计算节点基于预设通信协议发送的任务获取心跳帧;
需要说明的是,本实施例方法的应用场景可以是由至少一个中心服务器(节点管理器)和多个客户端(计算节点)构成的计算节点集群,集群中的每个计算节点(包括节点管理器)可以是一台物理机,也可以是一台虚拟机,甚至可以是一个能为计算机任务提供计算力的独立的进程。
本步骤中,所述预设通信协议可以是对传统的HTTP协议进行改进后的协议,使得计算节点通过该改进后的HTTP协议能够将心跳帧和任务请求合并发送,即合并为所述任务获取心跳帧后发送,从而极大的降低网络资源的开销。
步骤S20:提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
需要说明的是,所述节点标识可以是计算节点在向中心服务器进行节点注册时,中心服务器为该计算节点生成的节点ID。由于计算节点在注册过程中需要通过HTTP请求向中心服务器发送注册信息,包括自身的硬件信息、服务类型(可执行的计算任务种类)、约定的认证信息等内容,因此本实施例中心服务器在获取到计算节点的注册信息时,既会为计算节点生成或者获取对应的节点标识,也可将生成的节点标识与该计算节点对应的注册信息进行关联,以使得中心服务器在为计算节点分配任务时,可根据节点标识准确地查询出该计算节点所能处理任务的任务类型,然后根据该任务类型获取对应的待处理任务。
进一步地,为了能够实现对每个计算节点所能处理的任务的快速确定,本实施例可在中心服务器侧建立一个节点标识和任务处理类型之间的映射关系,使得中心服务器在高并发场景下,能够根据获取到的节点标识准确快速地确定各计算节点对应的任务处理类型,进而根据该任务处理类型对任务列表快速遍历,以确定计算节点对应的待处理任务。
具体的,中心服务器可提取所述任务获取心跳帧中包含的节点标识;然后根据所述节点标识(通过上述映射关系)获取所述计算节点对应的任务处理类型;在任务列表中查找是否存在所述任务处理类型对应的待处理任务标识;若存在,则获取所述待处理任务标识对应的待处理任务。其中,所述待处理任务标识可以是待处理任务对应的任务名称和/或任务编号等,所述任务列表中可包含有任务编号、任务名称、任务状态等信息。
步骤S30:获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
需要说明的是,所述任务信息可包括任务ID、任务类型以及任务所需要的参数,即任务需求参数。
在具体实现中,中心服务器可获取所述待处理任务对应的待处理任务标识、任务类型以及任务需求参数,然后将所述待处理任务标识、所述任务类型以及所述任务需求参数作为任务信息;再根据所述任务信息生成所述任务获取心跳帧对应的响应请求(HTTPresponse),并将所述响应请求发送至所述计算节点。
当然,若中心服务器在根据节点标识没有查找到计算节点对应的待处理任务,即当前任务列表中没有计算节点的任务处理类型对应的任务,此时中心服务器将返回空任务数据,即任务信息为空,以告知计算节点当前没有能分配给它的任务。
相应的,本实施例中当计算节点接收到任务信息后,将解析该任务信息,若解析后获得的任务数据为空,则进入休眠状态,等待下个周期重新发送任务获取心跳帧至中心服务器,请求进行任务分配。若解析后获得的数据不为空,则将调用对应任务类型的函数去执行任务,然后在任务执行完毕后将任务计算结果连同任务ID以HTTP请求的形式发送给中心服务器。
步骤S40:在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
本步骤中,中心服务器在接收到计算节点反馈的任务处理结果后,将提取其中包含的任务ID,然后根据该任务ID对任务列表中对应任务的任务状态进行更新,然后将任务计算结果保存至对应的数据库中,同时向计算节点返回一个任务完成确认信息。
计算节点在接收到任务完成确认信息后,将立即转换到等待获取任务的状态,即等待下个周期重新发送任务获取心跳帧至中心服务器。
进一步地,本实施例中心服务器在发送任务信息至计算节点时,还将同步根据本地数据库中记录的该计算节点的节点状态(例如在线、离线、任务处理中等)和心跳记录(即将计算节点的最后活跃时间修改为接收到该任务获取心跳帧的时间)。相应地,若任务信息为空,则中心服务器只需要更新该计算节点对应的心跳记录。
此外,由于任务获取心跳帧的发起方是计算节点,计算节点可按照一定的周期来定时发送该任务获取心跳帧,但当计算节点宕机时,将无法继续发送任务获取心跳帧,为了对计算节点的状态进行监测,可在中心服务器中设置一个程序定时去监测各个计算节点的上次心跳时间与当前时间点的间隔,如果该间隔超过一定阈值(例如三次心跳间隔的时间),则需要更新该计算节点状态,判定其为下线/离线节点,直至该节点下次上线并重新注册之前,都不再继续分配任务给它。本实施例通过这种方式能够简单、有效地监控各个计算节点健康状况。
本实施例通过接收计算节点基于预设通信协议发送的任务获取心跳帧;然后提取任务获取心跳帧中包含的节点标识,根据节点标识获取计算节点对应的待处理任务;再获取待处理任务的任务信息,并将任务信息返回至计算节点;之后在接收到计算节点基于任务信息反馈的任务处理结果时,对任务处理结果进行储存。由于本实施例中心服务器接收的是计算节点根据预设通信协议将任务获取请求和心跳帧两种数据报文合并后的任务获取心跳帧,相比于传统的对数据报文分别接收的方式,大大降低了对中心服务器的网络资源占用,同时,通过节点标识来对待处理任务的确定和分配也能保证任务的准确分配,提高了任务处理效率。
参考图3,图3为本发明基于节点集群的任务处理方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,还包括:
步骤S01:接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识;
需要说明的是,本实施例中计算节点在启动时,除了必要的服务初始化外,还需要通过HTTP请求向中心服务器发送节点注册请求,包括自身的硬件信息、服务类型(可执行的计算任务种类)、约定的认证信息等内容,在得到中心服务器的响应后,才能进行接下来的数据通信。
其中,计算节点的硬件信息是用于向中心服务器表明自身的计算能力,即能够接受多大的计算任务量;服务类型则用于表明所能执行的任务类型;约定的认证信息用于中心服务器对自身的合法性进行判断,该认证信息可包含分布式系统所约定的密钥。
本实施例中,中心服务器在接收到节点注册请求后,将验证计算节点的合法性,在合法性验证通过后,再判断该计算节点是否曾经向中心服务器注册过,即判断当前注册的计算节点是旧有节点还是新增节点。如果是旧有节点,则使用该计算节点当前上传的新的硬件信息更新旧的硬件信息,目的是确保当某些计算节点硬件升级后重新注册上线,能根据节点当前的计算能力分配任务,然后将之前注册时生成的节点ID返回给计算节点;如果是新增节点,则直接将节点的注册信息插入数据库中的计算节点管理表,然后为该计算节点生成对应的节点标识。
具体的,中心服务器可接收计算节点发送的节点注册请求,提取所述节点注册请求中包含的节点属性信息;然后根据所述节点属性信息对所述计算节点进行合法性判断;在所述合法性判断通过时,检测所述计算节点是否属于旧有节点;若不属于,则为所述计算节点生成对应的节点标识;若属于,则获取所述计算节点的注册信息,并从所述注册信息中提取所述计算节点的节点标识。
进一步地,为了保证合法性校验的可靠性,本实施例中心服务器节点在对计算节点进行合法性验证时,可先读取所述节点属性信息中包含的认证信息;从所述认证信息中读取验证密钥,以及节点地址信息;检测所述节点地址信息是否属于预设地址白名单,若属于,则根据所述验证密钥对所述计算节点进行合法性判断。
其中,所述节点地址信息可以是计算节点所在的地理位置信息(经纬度信息)、网络位置信息(IP地址信息)或是媒体存取控制位信息(Mac地址信息),这些信息可以用来判断计算节点是否属于当前计算节点集群,同时,所述验证密钥也能够进一步验证集群中的节点是否具有任务处理或注册的权限。
步骤S02:将所述节点标识发送至所述计算节点,以使所述计算节点根据所述节点标识返回任务获取心跳帧。
需要说明的是,中心服务器在得到计算节点的节点标识后,即可将节点标识发送至计算节点,计算节点需要对接收到的节点标识进行保存,且后续所有的数据通信都需要携带上该节点标识,以确保中心服务器能够有效识别合法计算节点的请求。
在具体实现中,中心服务器将节点标识发送至计算节点后,计算节点可基于该节点标识生成并发送任务获取心跳帧至中心服务器以获取相应的任务。
本实施例通过接收计算节点发送的节点注册请求,根据节点注册请求确定计算节点的节点标识,然后将节点标识发送至计算节点,以使计算节点根据节点标识返回任务获取心跳帧,能够保证为计算节点所生成的节点标识的唯一性,以及中心服务器和计算节点之间数据通信的可靠性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于节点集群的任务处理程序,所述基于节点集群的任务处理程序被处理器执行时实现如上文所述的基于节点集群的任务处理方法的步骤。
参照图4,图4为本发明基于节点集群的任务处理装置第一实施例的结构框图。
如图4所示,本发明实施例提出的基于节点集群的任务处理装置包括:
请求接收模块401,用于接收计算节点基于预设通信协议发送的任务获取心跳帧;
任务获取模块402,用于提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
任务分配模块403,用于获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
结果处理模块404,用于在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
本实施例通过接收计算节点基于预设通信协议发送的任务获取心跳帧;然后提取任务获取心跳帧中包含的节点标识,根据节点标识获取计算节点对应的待处理任务;再获取待处理任务的任务信息,并将任务信息返回至计算节点;之后在接收到计算节点基于任务信息反馈的任务处理结果时,对任务处理结果进行储存。由于本实施例中心服务器接收的是计算节点根据预设通信协议将任务获取请求和心跳帧两种数据报文合并后的任务获取心跳帧,相比于传统的对数据报文分别接收的方式,大大降低了对中心服务器的网络资源占用,同时,通过节点标识来对待处理任务的确定和分配也能保证任务的准确分配,提高了任务处理效率。
基于本发明上述基于节点集群的任务处理装置第一实施例,提出本发明基于节点集群的任务处理装置的第二实施例。
在本实施例中,所述任务获取模块402,还用于提取所述任务获取心跳帧中包含的节点标识;根据所述节点标识获取所述计算节点对应的任务处理类型;在任务列表中查找是否存在所述任务处理类型对应的待处理任务标识;若存在,则获取所述待处理任务标识对应的待处理任务。
作为一种实施方式,所述任务分配模块403,还用于获取所述待处理任务对应的待处理任务标识、任务类型以及任务需求参数;将所述待处理任务标识、所述任务类型以及所述任务需求参数作为任务信息;根据所述任务信息生成所述任务获取心跳帧对应的响应请求,并将所述响应请求发送至所述计算节点。
作为一种实施方式,所述请求接收模块401,还用于接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识;将所述节点标识发送至所述计算节点,以使所述计算节点根据所述节点标识返回任务获取心跳帧。
作为一种实施方式,所述请求接收模块401,还用于接收计算节点发送的节点注册请求,提取所述节点注册请求中包含的节点属性信息;根据所述节点属性信息对所述计算节点进行合法性判断;在所述合法性判断通过时,检测所述计算节点是否属于旧有节点;若不属于,则为所述计算节点生成对应的节点标识;若属于,则获取所述计算节点的注册信息,并从所述注册信息中提取所述计算节点的节点标识。
作为一种实施方式,所述请求接收模块401,还用于读取所述节点属性信息中包含的认证信息;从所述认证信息中读取验证密钥,以及节点地址信息;检测所述节点地址信息是否属于预设地址白名单,若属于,则根据所述验证密钥对所述计算节点进行合法性判断。
本发明基于节点集群的任务处理装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提供了一种基于节点集群的任务处理方法。
参照图5,图5为本发明基于节点集群的任务处理方法另一实施例的流程示意图。本实施例的执行主体为计算节点。
本实施例中,所述基于节点集群的任务处理方法包括以下步骤:
步骤S10':在当前节点状态处于预设状态时,基于预设通信协议根据节点标识生成任务获取心跳帧;
需要说明的是,本实施例方法的应用场景可以是由至少一个中心服务器(节点管理器)和多个客户端(计算节点)构成的计算节点集群,集群中的每个计算节点(包括节点管理器)可以是一台物理机,也可以是一台虚拟机,甚至可以是一个能为计算机任务提供计算力的独立的进程。
本步骤中,所述预设通信协议可以是对传统的HTTP协议进行改进后的协议,计算节点通过该改进后的HTTP协议能够将心跳帧和任务请求两种数据报文合并发送,即合并为所述任务获取心跳帧后发送,从而极大的降低网络资源的开销。
本步骤中,所述当前节点状态可以是计算节点当前的运行状态,例如离线、上线(处理任务中、空闲状态)等,所述预设状态可以是计算节点处于未处理任务的空闲状态。
在具体实现中,计算节点可周期性检测自身的当前节点状态,在检测到当前节点状态为空闲状态时,将基于上述预设通信协议生成任务获取心跳帧,该任务获取心跳帧中携带有该计算节点对应的节点标识。
步骤S20':将所述任务获取心跳帧发送至中心服务器,并获取所述中心服务器基于所述任务获取心跳帧反馈的任务信息;
相应地,中心服务器接收该任务获取心跳帧,提取任务获取心跳帧中包含的节点标识,然后根据节点标识获取该计算节点对应的待处理任务,再获取待处理任务的任务信息,并将任务信息返回至计算节点。其中,所述任务信息可包括任务ID、任务类型以及任务所需要的参数。
需要说明的是,所述节点标识可以是计算节点在向中心服务器进行节点注册时,中心服务器为该计算节点生成的节点ID。由于计算节点在注册过程中需要通过HTTP请求向中心服务器发送注册信息,包括自身的硬件信息、服务类型(可执行的计算任务种类)、约定的认证信息等内容,因此中心服务器在获取到计算节点的注册信息时,既会为计算节点生成对应的节点标识,也可将生成的节点标识与该计算节点对应的注册信息进行关联,以使得中心服务器在为计算节点分配任务时,可根据节点标识准确地查询出该计算节点所能处理任务的任务类型,然后根据该任务类型获取对应的待处理任务。
具体的,中心服务器可提取任务获取心跳帧中包含的节点标识;然后根据节点标识获取计算节点对应的任务处理类型;再在任务列表中查找是否存在任务处理类型对应的待处理任务标识;若存在,则获取待处理任务标识对应的待处理任务。其中,所述待处理任务标识可以是待处理任务对应的任务名称和/或任务编号等,所述任务列表中可包含有任务编号、任务名称、任务状态等信息。
在具体实现中,中心服务器可获取待处理任务对应的待处理任务标识、任务类型以及任务需求参数,然后将待处理任务标识、任务类型以及任务需求参数作为任务信息;再根据任务信息生成任务获取心跳帧对应的响应请求(HTTP response),并将响应请求发送至所述计算节点。
当然,若中心服务器在根据节点标识没有查找到计算节点对应的待处理任务,即当前任务列表中没有计算节点的任务处理类型对应的任务,此时中心服务器将返回空任务数据,即任务信息为空,以告知计算节点当前没有能分配给它的任务。
步骤S30':对所述任务信息中包含的待处理任务进行处理,并将任务处理结果发送至所述中心服务器。
在具体实现中,当计算节点接收到任务信息后,将解析该任务信息,若解析后获得的任务数据为空,则进入休眠状态,等待下个周期重新发送任务获取心跳帧至中心服务器,请求进行任务分配。
若解析后获得的数据不为空,则将调用对应任务类型的函数去执行任务,然后在任务执行完毕后将任务计算结果连同任务ID以HTTP请求的形式发送给中心服务器。
相应的,中心服务器在接收到计算节点反馈的任务处理结果后,将提取其中包含的任务ID,然后根据该任务ID对任务列表中对应任务的任务状态进行更新,再将任务计算结果保存至对应的数据库中,同时向计算节点返回一个任务完成确认信息。
计算节点在接收到任务完成确认信息后,将立即转换到等待获取任务的状态,即等待下个周期重新发送任务获取心跳帧至中心服务器。
进一步地,本实施例中心服务器在发送任务信息至计算节点时,还将同步根据本地数据库中记录的该计算节点的节点状态(例如在线、离线、任务处理中等)和心跳记录(即将计算节点的最后活跃时间修改为接收到该任务获取心跳帧的时间)。相应地,若任务信息为空,则中心服务器只需要更新该计算节点对应的心跳记录。
此外,由于任务获取心跳帧的发起方是计算节点,计算节点可按照一定的周期来定时发送该任务获取心跳帧,但当计算节点宕机时,将无法继续发送任务获取心跳帧,为了对计算节点的状态进行监测,可在中心服务器中设置一个程序定时去监测各个计算节点的上次心跳时间与当前时间点的间隔,如果该间隔超过一定阈值(例如三次心跳间隔的时间),则需要更新该计算节点状态,判定其为下线/离线节点,直至该节点下次上线并重新注册之前,都不再继续分配任务给它。通过这种方式中心服务器能够简单、有效地监控各个计算节点健康状况。
此外,本实施例中计算节点在启动时,除了必要的服务初始化外,还将通过HTTP请求向中心服务器发送节点注册请求,请求中包括自身的硬件信息、服务类型(可执行的计算任务种类)、约定的认证信息等内容,在得到中心服务器的响应后,才能进行接下来的数据通信。其中,计算节点的硬件信息是用于向中心服务器表明自身的计算能力,即能够接受多大的计算任务量;服务类型则用于表明所能执行的任务类型;约定的认证信息用于中心服务器对自身的合法性进行判断,该认证信息可包含分布式系统所约定的密钥。
在具体实现中,计算节点可在启动时,向中心服务器发送节点注册请求,以使中心服务器根据所述节点注册请求反馈对应的节点标识,然后对该节点标识进行存储,以后与中心服务器之间的所有通信都将带上该节点标识,以确保中心服务器能够有效识别合法计算节点的请求。
本实施例中心服务器在接收到节点注册请求后,将验证计算节点的合法性,在合法性验证通过后,再判断该计算节点是否曾经向中心服务器注册过,即判断当前注册的计算节点是旧有节点还是新增节点。如果是旧有节点,则使用该计算节点当前上传的新的硬件信息更新旧的硬件信息,目的是确保当某些计算节点硬件升级后重新注册上线,能根据节点当前的计算能力分配任务,然后将之前注册时生成的节点ID返回给计算节点;如果是新增节点,则直接将节点的注册信息插入数据库中的计算节点管理表,然后为该计算节点生成对应的节点标识。
具体的,中心服务器可接收计算节点发送的节点注册请求,提取所述节点注册请求中包含的节点属性信息;然后根据所述节点属性信息对所述计算节点进行合法性判断;在所述合法性判断通过时,检测所述计算节点是否属于旧有节点;若不属于,则为所述计算节点生成对应的节点标识;若属于,则获取所述计算节点的注册信息,并从所述注册信息中提取所述计算节点的节点标识。
进一步地,为了保证合法性校验的可靠性,本实施例中心服务器节点在对计算节点进行合法性验证时,可先读取所述节点属性信息中包含的认证信息;从所述认证信息中读取验证密钥,以及节点地址信息;检测所述节点地址信息是否属于预设地址白名单,若属于,则根据所述验证密钥对所述计算节点进行合法性判断。
其中,所述节点地址信息可以是计算节点所在的地理位置信息(经纬度信息)、网络位置信息(IP地址信息)或是媒体存取控制位信息(Mac地址信息),这些信息可以用来判断计算节点是否属于当前计算节点集群,同时,所述验证密钥也能够进一步验证集群中的节点是否具有任务处理或注册的权限。
在具体实现中,中心服务器将节点标识发送至计算节点后,计算节点可基于该节点标识生成并发送任务获取心跳帧至中心服务器以获取相应的任务。
本实施例计算节点在当前节点状态处于预设状态时,基于预设通信协议根据节点标识生成任务获取心跳帧;将任务获取心跳帧发送至中心服务器,并获取中心服务器基于任务获取心跳帧反馈的任务信息;对任务信息中包含的待处理任务进行处理,并将任务处理结果发送至中心服务器。由于本实施例计算节点是根据预设通信协议将任务获取请求和心跳帧两种数据报文合并后成任务获取心跳帧发送至中心服务器,相比于传统的对两种数据报文分别发送的方式,大大降低了对中心服务器的网络资源占用。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于节点集群的任务处理方法,其特征在于,所述基于节点集群的任务处理方法包括:
接收计算节点基于预设通信协议发送的任务获取心跳帧;
提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
2.如权利要求1所述的方法,其特征在于,所述提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务的步骤,包括:
提取所述任务获取心跳帧中包含的节点标识;
根据所述节点标识获取所述计算节点对应的任务处理类型;
在任务列表中查找是否存在所述任务处理类型对应的待处理任务标识;
若存在,则获取所述待处理任务标识对应的待处理任务。
3.如权利要求1所述的方法,其特征在于,所述获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点的步骤,包括:
获取所述待处理任务对应的待处理任务标识、任务类型以及任务需求参数;
将所述待处理任务标识、所述任务类型以及所述任务需求参数作为任务信息;
根据所述任务信息生成所述任务获取心跳帧对应的响应请求,并将所述响应请求发送至所述计算节点。
4.如权利要求1所述的方法,其特征在于,所述接收计算节点基于预设通信协议发送的任务获取心跳帧的步骤之前,所述方法还包括:
接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识;
将所述节点标识发送至所述计算节点,以使所述计算节点根据所述节点标识返回任务获取心跳帧。
5.如权利要求4所述的方法,其特征在于,所述接收计算节点发送的节点注册请求,根据所述节点注册请求确定所述计算节点的节点标识的步骤,包括:
接收计算节点发送的节点注册请求,提取所述节点注册请求中包含的节点属性信息;
根据所述节点属性信息对所述计算节点进行合法性判断;
在所述合法性判断通过时,检测所述计算节点是否属于旧有节点;
若不属于,则为所述计算节点生成对应的节点标识;
若属于,则获取所述计算节点的注册信息,并从所述注册信息中提取所述计算节点的节点标识。
6.如权利要求5所述的方法,其特征在于,所述根据所述节点属性信息对所述计算节点进行合法性判断的步骤,包括:
读取所述节点属性信息中包含的认证信息;
从所述认证信息中读取验证密钥,以及节点地址信息;
检测所述节点地址信息是否属于预设地址白名单,若属于,则根据所述验证密钥对所述计算节点进行合法性判断。
7.一种基于节点集群的任务处理装置,其特征在于,所述装置包括:
请求接收模块,用于接收计算节点基于预设通信协议发送的任务获取心跳帧;
任务获取模块,用于提取所述任务获取心跳帧中包含的节点标识,根据所述节点标识获取所述计算节点对应的待处理任务;
任务分配模块,用于获取所述待处理任务的任务信息,并将所述任务信息返回至所述计算节点;
结果处理模块,用于在接收到所述计算节点基于所述任务信息反馈的任务处理结果时,对所述任务处理结果进行储存。
8.一种基于节点集群的任务处理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于节点集群的任务处理程序,所述基于节点集群的任务处理程序配置为实现如权利要求1至6中任一项所述的基于节点集群的任务处理方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有基于节点集群的任务处理程序,所述基于节点集群的任务处理程序被处理器执行时实现如权利要求1至6任一项所述的基于节点集群的任务处理方法的步骤。
10.一种基于节点集群的任务处理方法,其特征在于,所述基于节点集群的任务处理方法包括:
在当前节点状态处于预设状态时,基于预设通信协议根据节点标识生成任务获取心跳帧;
将所述任务获取心跳帧发送至中心服务器,并获取所述中心服务器基于所述任务获取心跳帧反馈的任务信息;
对所述任务信息中包含的待处理任务进行处理,并将任务处理结果发送至所述中心服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010689359.XA CN111930482A (zh) | 2020-07-16 | 2020-07-16 | 基于节点集群的任务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010689359.XA CN111930482A (zh) | 2020-07-16 | 2020-07-16 | 基于节点集群的任务处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111930482A true CN111930482A (zh) | 2020-11-13 |
Family
ID=73313206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010689359.XA Pending CN111930482A (zh) | 2020-07-16 | 2020-07-16 | 基于节点集群的任务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930482A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685184A (zh) * | 2020-12-31 | 2021-04-20 | 广州极飞科技有限公司 | 分布式任务调度的方法、任务调度平台及任务执行器 |
CN113010287A (zh) * | 2021-03-16 | 2021-06-22 | 恩亿科(北京)数据科技有限公司 | 小型分布式任务处理系统、方法、电子设备和存储介质 |
-
2020
- 2020-07-16 CN CN202010689359.XA patent/CN111930482A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685184A (zh) * | 2020-12-31 | 2021-04-20 | 广州极飞科技有限公司 | 分布式任务调度的方法、任务调度平台及任务执行器 |
CN113010287A (zh) * | 2021-03-16 | 2021-06-22 | 恩亿科(北京)数据科技有限公司 | 小型分布式任务处理系统、方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679718B (zh) | 名单分配方法、设备以及计算机可读存储介质 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN109510878B (zh) | 一种长连接会话保持方法和装置 | |
CN104601702B (zh) | 集群远程过程调用方法及系统 | |
CN113612861B (zh) | 远程访问方法、系统及计算机可读存储介质 | |
CN106304396B (zh) | 接入点发现无线控制器的方法、系统和相关装置 | |
CN107995013B (zh) | 客服分配方法及装置 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN111930482A (zh) | 基于节点集群的任务处理方法、装置、设备及存储介质 | |
CN114024972A (zh) | 一种长连接通信方法、系统、装置、设备及存储介质 | |
CN111510353A (zh) | 在线设备的检测方法、装置、设备及计算机可读存储介质 | |
WO2020259438A1 (zh) | 服务扩容与迁移方法、装置、系统、设备及可读存储介质 | |
CN114338063A (zh) | 消息队列系统、业务处理方法及计算机可读存储介质 | |
CN109819023B (zh) | 分布式事务处理方法及相关产品 | |
CN111901386B (zh) | 一种远端文件处理的方法、系统、设备及可读存储介质 | |
CN112733051A (zh) | 一种基于WebSocket的信息推送管理系统及其方法 | |
US20090296149A1 (en) | Communication system, information storage device, management device, and terminal device | |
CN109981795B (zh) | 资源请求调度方法和装置 | |
CN112130931A (zh) | 一种应用部署方法、节点、系统及存储介质 | |
CN115004666A (zh) | 物联网设备的注册方法、装置、设备及存储介质 | |
CN111356090A (zh) | 网络的连网方法及其装置、终端和计算机可读存储介质 | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN114585026A (zh) | 频点切换方法、终端、基站和存储介质 | |
CN112566221A (zh) | 信息同步方法、装置、设备及可读存储介质 | |
CN114500341A (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 |