一种服务器集群处理任务的方法和系统与流程

文档序号:14843703发布日期:2018-06-30 14:32阅读:160来源:国知局
一种服务器集群处理任务的方法和系统与流程

本发明涉及计算机网络技术领域,特别涉及一种服务器集群处理任务的方法和系统。



背景技术:

随着网络宽带的日益普及和网络应用的不断发展,用户业务需求和对服务器处理能力的需求处在快速增长阶段,对服务器技术发展不断提出挑战。为了解决业务需求和服务器处理能力之间的不平衡,服务器技术已经从单节点网络服务器的一对多架构,向集群化、多服务器的多对多架构迁移,扩展了服务器的处理能力和带宽,以实现廉价、高效、可靠的网络服务能力。应用服务器集群可以从多个计算机的并行计算中获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器中断服务后整个系统还是能正常运行,保证了服务器处理能力的效率和稳定性。

服务器集群是将一组独立的服务器通过某种机制(网络连接)有机的连接起来,组成一个松耦合的多服务器系统,部署在这些服务器中的应用程序可以通过网络共享内存,进行消息传送,实现进程间通信,从而实现分布式计算。从外部来看,服务器集群仅仅是一个系统,对外提供统一的服务。

一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。在单一系统统一为客户提供服务的过程中,需要各个服务器之间的有机的协调。这个协调的内容主要体现在:

1)一个服务器集群包含多台拥有共享数据存储空间的服务器,各服务器之间通过内部局域网进行相互通信;

2)当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管;

3)在大多数情况下,集群中所有的计算机都拥有一个共同的名称,集群系统内任意一台服务器都可被所有的网络用户所使用。

4)在集群系统中运行的服务器并不一定是高档产品,但服务器的集群却可以提供相当高性能的不停机服务;

5)每一台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高;

6)同时,每台服务器还能承担一定的容错任务,当其中某台服务器出现故障时,系统可以在专用软件的支持下将这台服务器与系统隔离,并通过各服务器之间的负载转移机制实现新的负载平衡,同时向系统管理员发出报警信号。

服务器集群的任务的调度和分配策略,直接影响到工作服务器的负载均衡,对于集群服务器的高效运行具有重要的意义。目前比较常用的服务器集群负载均衡技术主要有:

1)、基于DNS的负载均衡。通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

2)、反向代理负载均衡(如Apache+JK+Tomcat组合)。使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器按照某种算法将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用代理访问多个内部Web服务器,因此也被称为反向代理模式。

3)、基于NAT(Network Address Translation)的负载均衡技术(如Linux Virtual Server,简称LVS)。NAT(网络地址转换)指在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

上述的负载均衡技术都需要花费较大的软件成本,而且具体实施过程中也会存在不同的不足。需要简化集群服务器的任务调度流程,提高任务处理的效率,以提高集群服务器的综合运行效率,满足大数据处理的需要。



技术实现要素:

本发明提供一种服务器集群处理任务的方法,优化了任务分配的流程,提高了任务分配的合理性,保证了处理服务器的负载均衡,降低了处理服务器的管理开销,提高任务分配和处理的稳定性与可靠性,保证了处理服务器的工作质量,避免了任务分配和处理的风险,提高了处理服务器运行的效率。

本发明的技术方案提供了一种服务器集群处理任务的方法,包括以下步骤:

生成任务队列;

生成请求队列;

为请求分配任务;

改变所述任务队列的状态值。

进一步的,所述生成任务队列,进一步包括:

设置任务排序规则,根据所述任务排序规则生成所述任务队列;

所述任务排序规则的参数包括但不限于优先级、提交时间和运算量;

根据所述任务排序规则计算任务权重,并根据所述任务权重进行排序,生成所述任务队列。

进一步的,所述任务队列中,每个任务的状态值的初始设置为未分配。

进一步的,所述生成请求队列,进一步包括:

设置请求排序规则,根据所述请求排序规则生成所述请求队列;

所述请求排序规则的参数包括但不限于提交时间和处理能力;

根据所述请求排序规则计算请求权重,并根据所述请求权重对请求进行排序,生成所述请求队列。

进一步的,按照所述任务队列和请求队列的排序,依次为每个请求分配任务。

进一步的,每次分配任务时,将所述任务队列中第一个所述状态值为未分配的任务分配给所述请求队列中的第一个请求。

进一步的,任务完成分配后,改变任务的所述状态值为已分配,并删除所述请求队列中已分配任务的请求。

本发明的技术方案还提供了一种服务器集群处理任务的系统,包括管理单元、任务队列和请求队列,其中:

管理单元用于为所述请求队列中的请求分配任务,编辑所述任务队列中任务的状态值,并删除所述请求队列中已分配任务的请求;

任务队列用于设置所述任务队列的任务排序规则,并按照排序存储任务;

请求队列用于设置所述请求队列的请求排序规则,并按照排序存储请求。

进一步的,所述任务队列和请求队列保持实时更新。

进一步的,每次分配任务时,所述管理单元将所述任务队列中第一个所述状态值为未分配的任务分配给所述请求队列中的第一个请求;

所述管理单元将已分配的任务的所述状态值调整为已分配;

所述管理单元删除所述请求队列中已分配任务的请求。

本发明技术方案通过对任务的加权分配优化了任务分配的流程,提高了任务分配的合理性,保证了处理服务器的负载均衡,降低了处理服务器的管理开销,提高任务分配和处理的稳定性与可靠性,保证了处理服务器的工作质量,避免了任务分配和处理的风险,提高了处理服务器运行的效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例一中服务器集群处理任务的方法流程图;

图2为本发明实施例一中服务器集群处理任务的系统结构图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为本发明实施例一中服务器集群处理任务的方法流程图,该方法的流程包括以下步骤:

步骤101、生成任务队列。

设置任务排序规则,根据任务排序规则生成任务队列;

任务排序规则的参数包括但不限于优先级、提交时间和运算量;

根据任务排序规则计算任务权重,并根据任务权重对任务进行排序,生成任务队列。

任务队列中,每个任务的状态值的初始设置为未分配。

步骤102、生成请求队列。

设置请求排序规则,根据请求排序规则生成请求队列;

请求排序规则的参数包括但不限于提交时间和处理能力;

根据请求排序规则计算请求权重,并根据请求权重对请求进行排序,生成请求队列。

步骤103、为请求分配任务。

按照任务队列和请求队列的排序,依次为每个请求分配任务。

每次分配任务时,将任务队列中第一个状态值为未分配的任务分配给请求队列中的第一个请求。

步骤104、改变所述任务队列的状态值。

任务完成分配后,改变任务的状态值为已分配,并删除请求队列中已分配任务的请求。

为了实现上述服务器集群处理任务的流程,本实施例还提供了一种服务器集群处理任务的系统,图2为本发明实施例一中服务器集群处理任务的系统结构图。如图2所示,该系统包括管理单元201、任务队列202和请求队列203,其中:

管理单元用于为请求队列中的请求分配任务,编辑任务队列中任务的状态值,并删除请求队列中已分配任务的请求;

任务队列用于设置任务队列的任务排序规则,并按照排序存储任务;

请求队列用于设置请求队列的请求排序规则,并按照排序存储请求。

任务队列和请求队列保持实时更新。

每次分配任务时,管理单元将任务队列中第一个状态值为未分配的任务分配给请求队列中的第一个请求;

管理单元将已分配的任务的状态值调整为已分配;

管理单元删除请求队列中已分配任务的请求。

上述实施例中的技术方案通过对任务的加权分配优化了任务分配的流程,提高了任务分配的合理性,保证了处理服务器的负载均衡,降低了处理服务器的管理开销,提高任务分配和处理的稳定性与可靠性,保证了处理服务器的工作质量,避免了任务分配和处理的风险,提高了处理服务器运行的效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1