CN113138844A - 虚拟机集群的任务下发方法、管理构件及工作构件 - Google Patents

虚拟机集群的任务下发方法、管理构件及工作构件 Download PDF

Info

Publication number
CN113138844A
CN113138844A CN202110448385.8A CN202110448385A CN113138844A CN 113138844 A CN113138844 A CN 113138844A CN 202110448385 A CN202110448385 A CN 202110448385A CN 113138844 A CN113138844 A CN 113138844A
Authority
CN
China
Prior art keywords
virtual machine
target
node
task
working component
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
Application number
CN202110448385.8A
Other languages
English (en)
Inventor
高正宇
杨卓俊
陆斌
黄俊文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110448385.8A priority Critical patent/CN113138844A/zh
Publication of CN113138844A publication Critical patent/CN113138844A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种虚拟机集群的任务下发方法、管理构件及工作构件,可用于金融技术领域,方法包括:若经检测获知当前接收的调用方发送的查询请求中指定虚拟机集群内的目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至目标虚拟机节点;将目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至调用方,以使该调用方将任务流发送至目标工作构件,使得目标工作构件将对应的任务流执行结果发送至调用方。本申请能够提高面向虚拟机集群的待执行任务的下发效率,减少任务执行耗时,实现对各个虚拟机节点的统一维护管理,提高整个任务下发及执行过程的稳定性及可靠性,并降低成本。

Description

虚拟机集群的任务下发方法、管理构件及工作构件
技术领域
本申请涉及数据处理技术领域,特别涉及金融技术领域,具体涉及虚拟机集群的任务下发方法、管理构件及工作构件。
背景技术
现有面向虚拟机群组的执行任务技术主要通过执行下发脚本实现。即,每次通过一个脚本使用文件传输协议FTP和所指定的虚拟机IP,将需要执行的任务下发至所有手动指定的目标虚拟机并执行任务流。
目前,现有利用脚本下发任务的任务执行方式,由于需要对虚拟机集群中所有的节点进行遍历式的任务下发,会使得任务堆积在待执行的状态中,进而降低任务下发的效率并延长任务执行的时间;同时,由于执行脚本这一操作是中心化的,因此在完全依赖下发脚本的执行的任务执行方式中,若执行下发脚本的机器不稳定,则会导致整个任务不可控,即便是运行下发脚本本身的系统采用集群调度的方式也会导致下发操作本身的成本大量上升;另外,针对执行逻辑相同的任务会存在无效重复下发的情形,且无法对虚拟机集群中的各个节点进行统一维护管理。
发明内容
针对现有技术中的问题,本申请提供一种虚拟机集群的任务下发方法、管理构件及工作构件,能够提高虚拟机集群中的虚拟机节点待执行任务的下发效率,并能够有效减少任务执行耗时,实现对虚拟机集群中的各个虚拟机节点的统一维护管理,能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本。
为解决上述技术问题,本申请提供以下技术方案:
方面,本申请提供一种虚拟机集群的任务下发方法,包括:
若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件;
将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
进一步地,还包括:
若当前接收的调用方发送的查询请求中指定所述虚拟机集群内的至少两个目标虚拟机节点,则获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口;
将所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口发生至所述调用方,以使该调用方基于各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口将任务流分别发送至各个所述目标工作构件,使得各个所述目标工作构件在各自接收到的所述任务流对应的目标任务执行完成后,将对应的执行结果分别发送至所述调用方。
进一步地,所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口,包括:
若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
进一步地,所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口,包括:
若经检测获知所述查询请求指定的各个所述目标虚拟节点中存在未安装有工作构件的目标虚拟机节点,则将一目标工作构件的安装脚本下发至未安装有工作构件的目标虚拟机节点,以在该目标虚拟机节点中安装并启动对应的目标工作构件;
接收并本地存储当前启动的目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息;
自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
进一步地,还包括:
向所述虚拟机集群中的各个虚拟机节点各自对应的工作构件发送更新信息,以使各个所述工作构件根据各自接收到的更新信息自动进行自我更新。
进一步地,还包括:
若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的该工作构件的进程服务端口和其所在的目标虚拟机节点的节点信息,则在本地将该工作构件的状态标记为开启状态;
若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的关闭信号,则在本地将该工作构件的状态标记为关闭状态。
进一步地,还包括:
若当前尚未安装工作构件的各个虚拟机节点所在的虚拟机集群为预设的常用虚拟机集群,则将各个工作构件的安装脚本下发至该常用虚拟机集群中的各个虚拟机节点,以在各个所述目标虚拟机节点中分别安装并启动各自对应的工作构件;
接收并本地存储各个已启动的工作构件分别发送的各自的进程服务端口和各自所在的目标虚拟机节点的节点信息。
方面,本申请提供一种管理构件,包括:
安装模块,用于若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件;
转发模块,用于将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
第三方面,本申请提供一种工作构件,工作构件安装在所述虚拟机集群内的虚拟机节点上,且分别与管理构件和调用方之间通信连接,其中,所述管理构件用于实现所述的虚拟机集群的任务下发方法;
所述工作构件包括:
自我监控模块,用于在自身启动时将自身的进程服务端口和所在的目标虚拟机节点的节点信息发送至所述管理构件,以及在自身关闭时将关闭信号发送至所述管理构件;
任务执行模块,用于执行所述调用方发送的任务流,并将对应的执行结果发送至所述调用方。
进一步地,所述任务执行模块包括如下内容:
接口单元,用于接收并自行处理属于预设的非常用任务类型的所述调用方发送的任务流对应的目标任务;
接口单元,用于接收属于预设的常用任务类型的所述调用方发送的任务流,并将该任务流下载至所在的虚拟机节点,以使该虚拟机节点执行该任务流对应的目标任务。
进一步地,还包括:
自我更新模块,用于接收所述管理构件发送的更新信息,并根据该更新信息自动进行自我更新。
第四方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的虚拟机集群的任务下发方法,或者,所述处理器执行所述计算机程序时实现所述的工作构件的功能。
第五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的虚拟机集群的任务下发方法,或者,所述计算机程序被处理器执行时实现所述的工作构件的功能。
由上述技术方案可知,本申请提供的虚拟机集群的任务下发方法、管理构件及工作构件,其中的虚拟机集群的任务下发方法包括:若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件;将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方,通过在经检测获知调用方发送的查询请求对应的虚拟机集群内的目标虚拟机节点中未包含有工作构件时,将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,能够为待被调用的虚拟机集群中的虚拟机节点设置其唯一对应的工作构件,并能够有效提高为虚拟机节点设置其唯一对应的工作构件的可靠性,并能够通过工作构件实现对虚拟机集群中的各个虚拟机节点的统一维护管理;通过将所述目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方将任务流发送至所述目标工作构件,无需在任务下发时遍历虚拟机集群中全部的节点,同时不需要管理构件或其他第三方的参与,调用方能够直接与工作构件进行通信连接,因此能够通过该工作构件提高指定其所在的虚拟机节点待执行任务的下发效率、减少任务执行耗时并进一步实现去中心化处理过程;且由于不需要依赖下发脚本的执行,还能够避免任务的无效重复下发;因此能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本;进而能够有效提高调用方的用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的虚拟机集群的任务下发方法中步骤110和步骤120的流程示意图。
图2是本申请实施例中的虚拟机集群的任务下发方法中步骤210和步骤220的流程示意图。
图3是本申请实施例中的虚拟机集群的任务下发方法中步骤310和步骤320的流程示意图。
图4是本申请实施例中的虚拟机集群的任务下发方法中步骤410至步骤430的流程示意图。
图5是本申请实施例中的虚拟机集群的任务下发方法中步骤510和步骤520的流程示意图。
图6是本申请实施例中的虚拟机集群的任务下发方法中步骤610和步骤620的流程示意图。
图7是本申请实施例中的虚拟机集群的任务下发方法中步骤710和步骤720的流程示意图。
图8是本申请实施例中的管理构件的结构示意图。
图9是本申请实施例中的工作构件的结构示意图。
图10是本申请应用实例中的用户、管理构件、工作构件和任务流之间的交互图。
图11是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的虚拟机集群的任务下发方法、管理构件及工作构件可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的虚拟机集群的任务下发方法、管理构件及工作构件的应用领域不做限定。
现有利用脚本下发任务的任务执行方式主要有以下几个问题:
1.无法针对面向虚拟机群组节点上的任务进行有效的任务下发。在利用脚本来完成任务下发的任务流水线视角中,针对虚拟机群组中节点本身的任务和其他任务并没有不同。如针对docker集群的任务需要对所有docker节点进行遍历式的任务下发,任务会堆积在待执行的状态中,甚至任务执行耗时会大量消耗在下发这一步骤中,拉长整个任务执行操作的时间。
2.任务执行完全依赖下发脚本的执行,而执行脚本这一操作是中心化的,即在某一进程、某一机器或某一个流程中完成脚本执行。如果任务是面对虚拟机群组每个节点的,那么容易造成下发任务的堆积,而执行下发脚本的机器不稳定会导致整个任务不可控;即便是运行下发脚本本身的系统采用集群调度的方式也会导致下发操作本身的成本大量上升。
3.任务重复多次下发,如果面对虚拟机群组中的节点需要多次下发,特别是有些任务是相同的执行逻辑重复多次执行,会导致任务的无效重复下发,结合问题2会导致系统的极端不稳定。
4.没有虚拟机群组节点的统一维护信息,每次都需要在下发脚本中写明地址,没有一键式的批量下发或者只提供节点名称等友好的任务下发方式。
基于此,本申请实施例分别提供由管理构件执行的虚拟机集群的任务下发方法、管理构件、工作构件、电子设备和计算机可读存储介质,通过在经检测获知调用方发送的查询请求对应的虚拟机集群内的目标虚拟机节点中未包含有工作构件时,将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,能够为待被调用的虚拟机集群中的虚拟机节点设置其唯一对应的工作构件,并能够有效提高为虚拟机节点设置其唯一对应的工作构件的可靠性,并能够通过工作构件实现对虚拟机集群中的各个虚拟机节点的统一维护管理;通过将所述目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方将任务流发送至所述目标工作构件,无需在任务下发时遍历虚拟机集群中全部的节点,同时不需要管理构件或其他第三方的参与,调用方能够直接与工作构件进行通信连接,因此能够通过该工作构件提高指定其所在的虚拟机节点待执行任务的下发效率、减少任务执行耗时并进一步实现去中心化处理过程;且由于不需要依赖下发脚本的执行,还能够避免任务的无效重复下发;因此能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本;进而能够有效提高调用方的用户体验。
在本申请的一个或多个实施例中,所述工作构件为通过安装脚本安装在虚拟机节点上的执行程序;所述管理构件可以采用第三方服务器实现,进而通过设置工作构件和管理构件,使得虚拟机集群或者包含有多个虚拟机集群的群组中,不需要将其中的某一个虚拟机节点设置为管理节点,进而实现针对虚拟机集群或者包含有多个虚拟机集群的群组的去中心化设置,以有效提高数据传输及任务下发、执行的效率及安全性。
在本申请的一个或多个实施例中,所述调用方可以为用户操作的客户端设备。所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在本申请的一个或多个实施例中,虚拟机集群及虚拟机节点是指:基于分布式思想构件的机器群组,用于共同构成一个总系统,当得到请求时,机器群组会基于一定的调度算法调度集群中的服务机器进行响应,当单台机器司机时不会影响整体的服务响应,并且拥有良好的横向扩展性。是现代程序系统应对高可用目标的常用模型。节点指虚拟机集群的服务单元,是服务的具体承载者。
在本申请的一个或多个实施例中,针对虚拟机集群的任务及任务流水线是指:针对分布式虚拟机群本身的部分节点或全部节点的操作任务,如docker集群需要对某一类的运行容器中临时放入某些监控工具,这一类型的容器可能分布在集群的各个机器中,此时即需要进行监控工具的下发任务。
其中,任务流水线是任务的队列,对于上述docker集群的任务,对于串行执行的脚本来说可能是一个运行时间很长的脚本任务;对于执行任务本身是分布式调度的系统来说,任务流水线是同时执行固定的数量的下发任务,并且在结束后推送下一批待执行任务;对于本申请应用实例来说,任务流水线是通知所有工作构件进行任务的执行,并等待全部工作完成进行结果分析返回的过程。
在本申请的一个或多个实施例中,程序自更新及生命周期自监控是指:程序自更新指对于不能轻易关闭、替换、启动的运行中程序,通过接收信号完成在线的自我升级的过程。生命周期自监控指以非外部插件的方式监控程序的运行状态,并且在关键时刻,及时通知状态维护构件。
在一种实际应用情形中,前述的管理构件执行虚拟机集群的任务下发方法的部分可以在如上述内容的第三方服务器中执行,也可以所有的操作都在客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于虚拟机集群的任务下发的具体处理。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了解决现有的虚拟机集群的任务下发方式存在下发效率低、任务执行耗时长、成本高及不稳定等问题,本申请提供一种执行主体为管理构件的虚拟机集群的任务下发方法的实施例,参见图1,基于管理构件执行的虚拟机集群的任务下发方法具体包含有如下内容:
步骤110:若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件。
在步骤110中,管理构件首先接收调用方发送的查询请求,而后独取该查询请求中指定的调用对象的个数,例如,调用对象可以为单个目标虚拟机节点、多个目标虚拟机节点或者整个虚拟机集群等等。
若经读取获知当前接收的调用方发送的查询请求中指定虚拟机集群内的单个目标虚拟机节点,则直接检测该目标虚拟机节点中是否已安装有工作构件,具体检测方式可以为:在管理构件本地调取该目标虚拟机节点的节点信息,并查看该节点信息是否匹配有唯一对应的工作构件的编号或者进程服务端口。
若经检测获知目标虚拟机节点中已安装有工作构件,则管理构件直接将云存储在本地的所述目标工作构件的自身的进程服务端口和其所在的目标虚拟机节点的节点信息发送给调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
可以理解的是,所述节点信息中包含有其对应的虚拟机节点的IP等能够唯一标识该虚拟机节点的标识信息。
若经检测获知目标虚拟机节点中尚未安装工作构件,则管理构件将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,而后在目标虚拟机节点中启动的目标工作构件自动将自身的进程服务端口和其所在的目标虚拟机节点的节点信息发送给管理构件,管理构件执行下述步骤120。
可以理解的是,本申请的一个或多个实施例中提及的目标虚拟机节点是指当前被调用方指定或者是当前管理构件的处理对象的虚拟机节点,也就是说,目标虚拟机节点即为虚拟机节点中被指定或当前正在被关注的一个。类似的,本申请的一个或多个实施例中提及的目标工作构件是指当前被调用方指定或者是当前管理构件的处理对象的工作构件,也就是说,目标工作构件是工作构件中被指定或当前正在被关注的一个。
步骤120:将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
在步骤120中,工作构件在接收到任务流之后,会根据任务流自身的类型标识或者本地存储的任务流类型划分数据来获知当前接收到的任务流属于常用任务类型还是非常用任务类型,例如,可以根据任务流自身的“常用任务”标记来确定该任务流属于常用任务类型,也可以根据任务流的关键字在本地预存储的类型查找表中查找该关键字与任务类型之间的对应关系。
工作构件获知当前接收的任务流为非常用任务,则针对非常用任务的临时任务执行功能,通过接口直接接收任务流,在本接口直接执行。
工作构件获知当前接收的任务流为常用任务,则通过本接口将目标任务下载至本节点;在下载完成后调用常用任务执行接口进行任务的执行;本接口可以指定覆盖任务流进行任务流的更新。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,通过在经检测获知调用方发送的查询请求对应的虚拟机集群内的目标虚拟机节点中未包含有工作构件时,将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,能够为待被调用的虚拟机集群中的虚拟机节点设置其唯一对应的工作构件,并能够有效提高为虚拟机节点设置其唯一对应的工作构件的可靠性,并能够通过工作构件实现对虚拟机集群中的各个虚拟机节点的统一维护管理;通过将所述目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方将任务流发送至所述目标工作构件,无需在任务下发时遍历虚拟机集群中全部的节点,同时不需要管理构件或其他第三方的参与,调用方能够直接与工作构件进行通信连接,因此能够通过该工作构件提高指定其所在的虚拟机节点待执行任务的下发效率、减少任务执行耗时并进一步实现去中心化处理过程;且由于不需要依赖下发脚本的执行,还能够避免任务的无效重复下发;因此能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本;进而能够有效提高调用方的用户体验。
为了实现任务批量下发,在本申请的由管理构件执行的虚拟机集群的任务下发方法的一个实施例中,参见图2,还具体包含有如下内容:
步骤210:接收调用方发送的查询请求,若该查询请求中指定所述虚拟机集群内的至少两个目标虚拟机节点,且该查询请求中包含有待进行批量下发的任务流,则获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
在步骤210中,管理构件获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的方式有两种:
(1)若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
(2)若经检测获知所述查询请求指定的各个所述目标虚拟节点中存在未安装有工作构件的目标虚拟机节点,则将一目标工作构件的安装脚本下发至未安装有工作构件的目标虚拟机节点,以在该目标虚拟机节点中安装并启动对应的目标工作构件;接收并本地存储当前启动的目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息;自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
步骤220:根据所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口,将所述待进行批量下发的任务流分别发送至各个所述目标工作构件,使得各个所述目标工作构件在各自接收到的所述任务流对应的目标任务执行完成后,将对应的执行结果分别发送至所述调用方。
也就是说,是当用户不是面向分布式集群的某个节点,而是全部节点时,管理构件可以代为进行全节点的任务下发的功能。
然而,由于管理构件此时已经参与到任务下发及执行的过程中,而不仅仅是调用方和工作构件之间的沟通媒介,因此并未真正意义上的实现去中心化;同时,由于在该种方式下,调用方需要先将任务流发送至管理构件,再有管理构件进行下发,显然会造成管理构件的数据量负荷重、任务下发过程繁琐而导致效率低下以及无法保证任务流的数据安全等问题。
基于此,为了实现调用方自行进行任务批量下发至调用方的过程,在本申请提供的虚拟机集群的任务下发方法的一个实施例,参见图3,所述虚拟机集群的任务下发方法中还具体包含有如下内容:
步骤310:若当前接收的调用方发送的查询请求中指定所述虚拟机集群内的至少两个目标虚拟机节点,则获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
步骤320:将所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口发生至所述调用方,以使该调用方基于各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口将任务流分别发送至各个所述目标工作构件,使得各个所述目标工作构件在各自接收到的所述任务流对应的目标任务执行完成后,将对应的执行结果分别发送至所述调用方。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,通过在调用方请求调用整个虚拟机集群或者若干虚拟机节点时,通过管理构件将调用方请求的所有的虚拟机节点信息和这些虚拟机节点的工作构件的进程服务端口发送给调用方,使得调用方根据获取的信息进行针对多个虚拟机节点的批量任务的分发;在此过程中,由于调用方无需将待分发任务先发送至管理构件,再由管理构件进行任务分发,能够有效提高任务数据的下发效率,无需管理构件参与任务下发的过程,能够进一步实现去中心化的处理过程并能够有效提高任务下发的安全性;同时由于调用方能够自行根据获取的信息进行针对多个虚拟机节点的批量任务的自主分发,能够有效提高调用方下发任务的灵活程度,进而进一步提高调用方的用户体验。
基于上述的步骤310,在本申请的虚拟机集群的任务下发方法的一个实施例中,所述步骤310中的所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的第一种实现方式如下:
步骤311:若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的节点信息,能够有效提高获取述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的效率及便捷性,进而能够进一步提高虚拟机集群的任务下发的效率。
基于上述的步骤310,在本申请的虚拟机集群的任务下发方法的一个实施例中,参见图4,所述步骤310中的所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的第二种实现方式如下:
步骤410:若经检测获知所述查询请求指定的各个所述目标虚拟节点中存在未安装有工作构件的目标虚拟机节点,则将一目标工作构件的安装脚本下发至未安装有工作构件的目标虚拟机节点,以在该目标虚拟机节点中安装并启动对应的目标工作构件。
步骤420:接收并本地存储当前启动的目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息。
步骤430:自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,若经检测获知所述查询请求指定的各个所述目标虚拟节点中存在未安装有工作构件的目标虚拟机节点,则将一目标工作构件的安装脚本下发至未安装有工作构件的目标虚拟机节点,能够有效保证获取述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的全面性及有效性,进而能够进一步提高虚拟机集群的任务下发的有效性及稳定性。
为了实现工作构件的自动更新,在本申请提供的虚拟机集群的任务下发方法的一个实施例,参见图5,所述虚拟机集群的任务下发方法中还具体包含有如下内容:
步骤510:向所述虚拟机集群中的各个虚拟机节点各自对应的工作构件发送更新信息,以使各个所述工作构件根据各自接收到的更新信息自动进行自我更新。
步骤520:接收已完成自我更新的工作构件发送的更新完成通知并更新本地存储的工作构件更新记录。
具体来说,工作构件具备自我更新功能,该功能主要用于当工作构件的程序有升级的需要时,不用再一次进行工作构件的批量下发,而可以通过工作构件自我更新接口,替换为新的程序。而相对应的,管理构件具有工作构件程序更新功能,该功能主要是在工作构件需要更新时,通知目标工作构件进行自我更新。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,通过在工作构件需要更新时,通知目标工作构件进行自我更新,能够有效提高工作构件更新的时效性,进而能够有效提供工作构件的运行可靠性及稳定性,进而进一步提高虚拟机集群的任务下发过程的可靠性及稳定性。
为了实现工作构建状态监控,在本申请提供的虚拟机集群的任务下发方法的一个实施例,参见图6,所述虚拟机集群的任务下发方法中还具体包含有如下内容:
步骤610:若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的该工作构件的进程服务端口和其所在的目标虚拟机节点的节点信息,则在本地将该工作构件的状态标记为开启状态。
步骤620:若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的关闭信号,则在本地将该工作构件的状态标记为关闭状态。
具体来说,工作构件具备自我监控功能:一是在工作构件启动时将本机的ip和本构件的暴露端口通知管理构件。二是在本构件自我结束或构件进程被手动关闭时及时将关闭信号通知管理构件。管理构件具备工作构件监控功能:主要是在工作构件启动和关闭时,及时记录该构件状态,防止构件的重复下发和针对工作构件的无效调用。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,通过随时根据接收的信息更新本地记录的工作构件的状态,能够及时记录该工作构件状态,防止工作构件的重复下发和针对工作构件的无效调用。
为了实现统一工作构件下发,在本申请提供的虚拟机集群的任务下发方法的一个实施例,参见图7,所述虚拟机集群的任务下发方法中还具体包含有如下内容:
步骤710:若当前尚未安装工作构件的各个虚拟机节点所在的虚拟机集群为预设的常用虚拟机集群,则将各个工作构件的安装脚本下发至该常用虚拟机集群中的各个虚拟机节点,以在各个所述目标虚拟机节点中分别安装并启动各自对应的工作构件。
步骤720:接收并本地存储各个已启动的工作构件分别发送的各自的进程服务端口和各自所在的目标虚拟机节点的节点信息。
具体来说,管理构件具备集群节点统一工作构件下发功能:可以在管理构件中,添加常用的虚拟机群组及其地址,在需要使用此虚拟机集群之前,进行一次统一的工作构件下发。
从上述描述可知,本申请实施例提供的由管理构件实现的虚拟机集群的任务下发方法,通过在需要使用常用虚拟机集群之前,针对该常用虚拟机集群进行一次统一的工作构件下发,能够进一步提高后续虚拟机集群的任务下发的执行效率。
从软件层面来说,为了解决现有的虚拟机集群的任务下发方式存在下发效率低、任务执行耗时长、成本高及不稳定等问题,本申请提供一种用于执行所述虚拟机集群的任务下发方法中全部或部分内容的管理构件的实施例,参见图8,所述管理构件具体包含有如下内容:
安装模块11,用于若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件。
转发模块12,用于将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
本申请提供的管理构件的实施例具体可以用于执行上述实施例中的虚拟机集群的任务下发方法的实施例的处理流程,其功能在此不再赘述,可以参照上述虚拟机集群的任务下发方法实施例的详细描述。
从上述描述可知,本申请实施例提供的管理构件,通过在经检测获知调用方发送的查询请求对应的虚拟机集群内的目标虚拟机节点中未包含有工作构件时,将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,能够为待被调用的虚拟机集群中的虚拟机节点设置其唯一对应的工作构件,并能够有效提高为虚拟机节点设置其唯一对应的工作构件的可靠性,并能够通过工作构件实现对虚拟机集群中的各个虚拟机节点的统一维护管理;通过将所述目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方将任务流发送至所述目标工作构件,无需在任务下发时遍历虚拟机集群中全部的节点,同时不需要管理构件或其他第三方的参与,调用方能够直接与工作构件进行通信连接,因此能够通过该工作构件提高指定其所在的虚拟机节点待执行任务的下发效率、减少任务执行耗时并进一步实现去中心化处理过程;且由于不需要依赖下发脚本的执行,还能够避免任务的无效重复下发;因此能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本;进而能够有效提高调用方的用户体验。
为了实现任务批量下发,在本申请的由管理构件执行的管理构件的一个实施例中,所述管理构件还用于执行如图2所示的内容。
然而,由于管理构件此时已经参与到任务下发及执行的过程中,而不仅仅是调用方和工作构件之间的沟通媒介,因此并未真正意义上的实现去中心化;同时,由于在该种方式下,调用方需要先将任务流发送至管理构件,再有管理构件进行下发,显然会造成管理构件的数据量负荷重、任务下发过程繁琐而导致效率低下以及无法保证任务流的数据安全等问题。
基于此,为了实现调用方自行进行任务批量下发至调用方的过程,在本申请提供的管理构件的一个实施例,所述管理构件还用于执行如图3所示的内容。
基于上述的步骤310,在本申请的管理构件的一个实施例中,所述步骤310中的所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的第一种实现方式如下:
步骤311:若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
基于上述的步骤310,在本申请的管理构件的一个实施例中,所述步骤310中的所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口的第二种实现方式如图4所示。
为了实现工作构件的自动更新,在本申请提供的管理构件的一个实施例,所述管理构件还用于执行如图5所示的内容。
为了实现工作构建状态监控,在本申请提供的管理构件的一个实施例,所述管理构件还用于执行如图6所示的内容。
为了实现统一工作构件下发,在本申请提供的管理构件的一个实施例,所述管理构件还用于执行如图7所示的内容。
为了解决现有的虚拟机集群的任务下发方式存在下发效率低、任务执行耗时长、成本高及不稳定等问题,本申请提供还一种与前述用于执行所述虚拟机集群的任务下发方法中全部或部分内容的管理构件相对应的工作构件的实施例,工作构件安装在所述虚拟机集群内的虚拟机节点上,且分别与管理构件和调用方之间通信连接,参见图9,所述工作构件具体包含有如下内容:
自我监控模块21,用于在自身启动时将自身的进程服务端口和所在的目标虚拟机节点的节点信息发送至所述管理构件,以及在自身关闭时将关闭信号发送至所述管理构件。
任务执行模块22,用于执行所述调用方发送的任务流,并将对应的执行结果发送至所述调用方。
从上述描述可知,本申请实施例提供的工作构件,通过在经检测获知调用方发送的查询请求对应的虚拟机集群内的目标虚拟机节点中未包含有工作构件时,将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件,能够为待被调用的虚拟机集群中的虚拟机节点设置其唯一对应的工作构件,并能够有效提高为虚拟机节点设置其唯一对应的工作构件的可靠性,并能够通过工作构件实现对虚拟机集群中的各个虚拟机节点的统一维护管理;通过将所述目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方将任务流发送至所述目标工作构件,无需在任务下发时遍历虚拟机集群中全部的节点,同时不需要管理构件或其他第三方的参与,调用方能够直接与工作构件进行通信连接,因此能够通过该工作构件提高指定其所在的虚拟机节点待执行任务的下发效率、减少任务执行耗时并进一步实现去中心化处理过程;且由于不需要依赖下发脚本的执行,还能够避免任务的无效重复下发;因此能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本;进而能够有效提高调用方的用户体验。
为了实现不同任务类型的区别化处理功能,在本申请的工作构件的一个实施例中,所述工作构件中的任务执行模块22还具体包含有如下内容:
第一接口单元,用于接收并自行处理属于预设的非常用任务类型的所述调用方发送的任务流对应的目标任务。
第二接口单元,用于接收属于预设的常用任务类型的所述调用方发送的任务流,并将该任务流下载至所在的虚拟机节点,以使该虚拟机节点执行该任务流对应的目标任务。
从上述描述可知,本申请实施例提供的工作构件,通过设置不同的接口来对不同的任务类型进行区别化处理,能够进一步提高任务下发和执行的效率及可靠性。
为了实现自我更新,在本申请的工作构件的一个实施例中,所述工作构件中还具体包含有如下内容:
自我更新模块23,用于接收所述管理构件发送的更新信息,并根据该更新信息自动进行自我更新。
从上述描述可知,本申请实施例提供的工作构件,通过在工作构件需要更新时,通知目标工作构件进行自我更新,能够有效提高工作构件更新的时效性,进而能够有效提供工作构件的运行可靠性及稳定性,进而进一步提高虚拟机集群的任务下发过程的可靠性及稳定性。
为了进一步说明本方案,本申请还提供一种基于工作构件和管理构件实现虚拟机集群的任务下发及执行方法的具体应用实例,针对现有的以脚本下发任务方式的缺点,为解决脚本下发任务方式面对虚拟机群组的任务速度慢,成本高,不稳定等问题。本申请应用实例极大的提高了任务下发的稳定性,并将任务下发操作和任务目标针对虚拟机群组这一特性本身相结合,降低了下发任务的成本,提高了运行效率,提供了自我更新和监控的能力。
本申请应用实例主要有两个组成部分:
一种下发到虚拟机群组节点中的任务执行工作构件,此构件在面向虚拟机群组任务执行之前提前分发到目标群组中的节点机器中,其具体包括:
1)任务下发和执行模块:本模块主要分为两个功能,一个是针对非常用任务的临时任务执行功能,通过接口直接接收任务流,在本接口直接执行。另一个是针对常用任务的任务文件接收接口,通过本接口将目标任务下载至本节点;在下载完成后调用常用任务执行接口进行任务的执行;本接口可以指定覆盖任务流进行任务流的更新。
2)自我监控模块:本模块主要功能为两个:一是在工作构件启动时将本机的ip和本构件的暴露端口通知管理构件。二是在本构件自我结束或构件进程被手动关闭时及时将关闭信号通知管理构件。
3)自我更新模块:本模块主要用于当工作构件的程序有升级的需要时,不用再一次进行工作构件的批量下发,而可以通过工作构件自我更新接口,替换为新的程序。
一种统一管理、监控所有工作构件状态的管理构件,具体包括:
1)工作构件下发模块:本模块主要在目标节点上尚未有工作构件时,将工作构件下载至目标节点并启动。
2)批量任务下发模块:本模块的功能是当用户不是面向分布式集群的某个节点,而是全部节点时,进行全节点的任务下发的功能。
3)工作构件程序更新模块:本模块的功能主要是在工作构件需要更新时,通知目标工作构件进行自我更新。
4)工作构件监控模块:本模块的主要功能是在工作构件启动和关闭时,及时记录该构件状态,防止构件的重复下发和针对工作构件的无效调用。
5)集群节点统一工作构件下发流程:可以在管理构件中,添加常用的虚拟机群组及其地址,在需要使用此集群之前,进行一次统一的工作构件下发。
参见图10,本申请应用实例的工作流程描述如下:
1)当需要完成面向虚拟机群组的任务时,用户向管理构件查询目标机器中工作构件端口暴露情况,管理构件从维护的构件状态中得到相应的节点ip和暴露端口,当目标节点机器下没有工作构件时,管理构件执行工作构件下发操作,将构件安装脚本下发至目标机器,并且在目标机器中启动该工作构件,工作构件向管理构件同步其所在节点信息和进程服务端口用于后续工作任务的使用,管理构件再将此信息返回给调用方。
2)用户在查询得到目标节点的工作构件后,通过接口将任务流传达给工作构件,工作构件执行相应的任务并且将结果返回给调用方。
3)当需要针对某个虚拟机群组的全部节点或者某些特定节点时,可以调用管理构件的批量下发模块,对整个目标虚拟机群组的节点进行并发的任务下发与执行。
4)当构件不再需要使用或者该节点下线、构件生命周期死亡时,向管理构件发送信号,管理构件将该节点从维护的节点信息库中踢除。
由此可知,本申请应用实例通过结合虚拟机群组本身的特性,自主实现了一套任务分解及分发、工作构件分发及管理、任务执行本地化、去中心化仅监控的任务下发执行方案。解决了传统任务下发方式无法针对有大量节点的虚拟机群组做针对性的任务下发、任务中心化导致任务堆积和任务执行不稳定、成本高居不下的问题。
本申请应用实例还创新性的实现了程序的自我更新,解决了旧有工作构件满足不了新的要求时,需要依靠传统的方式关闭工作构件并重新分发工作构件的问题;还实现了工作构件生命周期监控,解决了节点下线或者工作构件意外死亡时无法及时进行状态更新和维护的问题。
从硬件层面来说,为了解决现有的虚拟机集群的任务下发方式存在下发效率低、任务执行耗时长、成本高及不稳定等问题,本申请提供一种用于实现所述虚拟机集群的任务下发方法或虚拟机集群的任务下发方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,虚拟机集群的任务下发功能或者工作构件的执行功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤110:若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件。
步骤120:将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
或者,中央处理器可以被配置为进行如下控制:
自我监控模块21在自身启动时将自身的进程服务端口和所在的目标虚拟机节点的节点信息发送至所述管理构件,以及在自身关闭时将关闭信号发送至所述管理构件。
任务执行模块22执行所述调用方发送的任务流,并将对应的执行结果发送至所述调用方。
从上述描述可知,本申请实施例提供的电子设备,能够提高虚拟机集群中的虚拟机节点待执行任务的下发效率,并能够有效减少任务执行耗时,实现对虚拟机集群中的各个虚拟机节点的统一维护管理,能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本。
在另一个实施方式中,管理构件可以与中央处理器9100分开配置,例如可以将管理构件配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现虚拟机集群的任务下发功能。
如图11所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的虚拟机集群的任务下发方法或虚拟机集群的任务下发方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的虚拟机集群的任务下发方法或工作构件的执行功能的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤110:若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件。
步骤120:将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
或者,所述处理器执行所述计算机程序时实现下述步骤:
自我监控模块21在自身启动时将自身的进程服务端口和所在的目标虚拟机节点的节点信息发送至所述管理构件,以及在自身关闭时将关闭信号发送至所述管理构件。
任务执行模块22执行所述调用方发送的任务流,并将对应的执行结果发送至所述调用方。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高虚拟机集群中的虚拟机节点待执行任务的下发效率,并能够有效减少任务执行耗时,实现对虚拟机集群中的各个虚拟机节点的统一维护管理,能够有效提高整个任务下发及执行过程的稳定性及可靠性,并降低成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (13)

1.一种虚拟机集群的任务下发方法,其特征在于,包括:
若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件;
将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
2.根据权利要求1所述的虚拟机集群的任务下发方法,其特征在于,还包括:
若当前接收的调用方发送的查询请求中指定所述虚拟机集群内的至少两个目标虚拟机节点,则获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口;
将所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口发生至所述调用方,以使该调用方基于各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口将任务流分别发送至各个所述目标工作构件,使得各个所述目标工作构件在各自接收到的所述任务流对应的目标任务执行完成后,将对应的执行结果分别发送至所述调用方。
3.根据权利要求2所述的虚拟机集群的任务下发方法,其特征在于,所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口,包括:
若经检测该查询请求指定的目标虚拟节点中均包含有各自唯一对应的目标工作构件,则自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
4.根据权利要求2所述的虚拟机集群的任务下发方法,其特征在于,所述获取所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口,包括:
若经检测获知所述查询请求指定的各个所述目标虚拟节点中存在未安装有工作构件的目标虚拟机节点,则将一目标工作构件的安装脚本下发至未安装有工作构件的目标虚拟机节点,以在该目标虚拟机节点中安装并启动对应的目标工作构件;
接收并本地存储当前启动的目标工作构件发送的进程服务端口和其所在的目标虚拟机节点的节点信息;
自本地查找预存储的所述查询请求指定的各个所述目标虚拟节点各自对应的节点信息和各自唯一对应的目标工作构件的进程服务端口。
5.根据权利要求1所述的虚拟机集群的任务下发方法,其特征在于,还包括:
向所述虚拟机集群中的各个虚拟机节点各自对应的工作构件发送更新信息,以使各个所述工作构件根据各自接收到的更新信息自动进行自我更新。
6.根据权利要求1所述的虚拟机集群的任务下发方法,其特征在于,还包括:
若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的该工作构件的进程服务端口和其所在的目标虚拟机节点的节点信息,则在本地将该工作构件的状态标记为开启状态;
若接收到所述虚拟机集群中的任一虚拟机节点对应的工作构件发送的关闭信号,则在本地将该工作构件的状态标记为关闭状态。
7.根据权利要求1所述的虚拟机集群的任务下发方法,其特征在于,还包括:
若当前尚未安装工作构件的各个虚拟机节点所在的虚拟机集群为预设的常用虚拟机集群,则将各个工作构件的安装脚本下发至该常用虚拟机集群中的各个虚拟机节点,以在各个所述目标虚拟机节点中分别安装并启动各自对应的工作构件;
接收并本地存储各个已启动的工作构件分别发送的各自的进程服务端口和各自所在的目标虚拟机节点的节点信息。
8.一种管理构件,其特征在于,包括:
安装模块,用于若当前接收的调用方发送的查询请求中指定虚拟机集群内的一目标虚拟机节点,且经检测获知该目标虚拟机节点中未包含有工作构件,则将目标工作构件的安装脚本下发至所述目标虚拟机节点,以在该目标虚拟机节点中安装并启动所述目标工作构件;
转发模块,用于将所述目标工作构件发送的自身的进程服务端口和其所在的目标虚拟机节点的节点信息进行本地存储并转发至所述调用方,以使该调用方基于所述目标工作构件的进程服务端口和所述目标虚拟机节点的节点信息将任务流发送至所述目标工作构件,使得该目标工作构件在所述任务流对应的目标任务执行完成后,将对应的执行结果发送至所述调用方。
9.一种工作构件,其特征在于,工作构件安装在所述虚拟机集群内的虚拟机节点上,且分别与管理构件和调用方之间通信连接,其中,所述管理构件用于实现权利要求1至7任一项所述的虚拟机集群的任务下发方法;
所述工作构件包括:
自我监控模块,用于在自身启动时将自身的进程服务端口和所在的目标虚拟机节点的节点信息发送至所述管理构件,以及在自身关闭时将关闭信号发送至所述管理构件;
任务执行模块,用于执行所述调用方发送的任务流,并将对应的执行结果发送至所述调用方。
10.根据权利要求9所述的工作构件,其特征在于,所述任务执行模块包括如下内容:
接口单元,用于接收并自行处理属于预设的非常用任务类型的所述调用方发送的任务流对应的目标任务;
接口单元,用于接收属于预设的常用任务类型的所述调用方发送的任务流,并将该任务流下载至所在的虚拟机节点,以使该虚拟机节点执行该任务流对应的目标任务。
11.根据权利要求9所述的工作构件,其特征在于,还包括:
自我更新模块,用于接收所述管理构件发送的更新信息,并根据该更新信息自动进行自我更新。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的虚拟机集群的任务下发方法,或者,所述处理器执行所述计算机程序时实现权利要求9至11任一项所述的工作构件的功能。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的虚拟机集群的任务下发方法,或者,所述计算机程序被处理器执行时实现权利要求9至11任一项所述的工作构件的功能。
CN202110448385.8A 2021-04-25 2021-04-25 虚拟机集群的任务下发方法、管理构件及工作构件 Pending CN113138844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110448385.8A CN113138844A (zh) 2021-04-25 2021-04-25 虚拟机集群的任务下发方法、管理构件及工作构件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110448385.8A CN113138844A (zh) 2021-04-25 2021-04-25 虚拟机集群的任务下发方法、管理构件及工作构件

Publications (1)

Publication Number Publication Date
CN113138844A true CN113138844A (zh) 2021-07-20

Family

ID=76811962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110448385.8A Pending CN113138844A (zh) 2021-04-25 2021-04-25 虚拟机集群的任务下发方法、管理构件及工作构件

Country Status (1)

Country Link
CN (1) CN113138844A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327748A (zh) * 2021-11-29 2022-04-12 北京志凌海纳科技有限公司 虚拟机交互方法、装置、非易失性存储介质及处理器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327748A (zh) * 2021-11-29 2022-04-12 北京志凌海纳科技有限公司 虚拟机交互方法、装置、非易失性存储介质及处理器

Similar Documents

Publication Publication Date Title
CN105721547B (zh) 协同处理业务的方法和装置
CN110990228A (zh) 数据接口监控方法及装置
CN103064960A (zh) 数据库查询方法及设备
CN102467411A (zh) 一种工作流处理及工作流代理方法、装置和系统
CN111507674B (zh) 任务信息处理方法、装置及系统
CN108965109A (zh) 一种即时通讯控制方法、装置及存储介质
CN105681463A (zh) 一种分布式服务框架以及分布式服务调用系统
CN113626002A (zh) 一种服务执行方法及装置
CN111510493B (zh) 分布式数据传输方法及装置
CN115562757A (zh) 数据处理方法、配置中心系统、电子设备及存储介质
CN112689012A (zh) 跨网络的代理通讯方法及装置
CN113138844A (zh) 虚拟机集群的任务下发方法、管理构件及工作构件
CN111277983A (zh) 一种rfid中间件、发布订阅系统和数据传输方法
CN104580757A (zh) 一种电话状态分享方法和装置
CN108259605B (zh) 一种基于多数据中心的数据调用系统及方法
CN112905338B (zh) 计算资源自动分配方法及装置
CN115550354A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN113420007A (zh) 数据库访问的审计处理方法、装置及电子设备
CN113438602B (zh) 一种终端管理方法、装置、设备及存储介质
CN115562898A (zh) 分布式支付系统异常处理方法及装置
CN113918436A (zh) 日志处理方法及装置
CN114697339A (zh) 集中式架构下的负载均衡方法及装置
CN114374614A (zh) 网络拓扑配置方法及装置
CN112799813A (zh) 分布式作业服务调度方法、分布式服务器及业务终端
CN112416641A (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