CN106933675A - 一种处理任务的方法、管理器、服务器及系统 - Google Patents

一种处理任务的方法、管理器、服务器及系统 Download PDF

Info

Publication number
CN106933675A
CN106933675A CN201511033618.9A CN201511033618A CN106933675A CN 106933675 A CN106933675 A CN 106933675A CN 201511033618 A CN201511033618 A CN 201511033618A CN 106933675 A CN106933675 A CN 106933675A
Authority
CN
China
Prior art keywords
task
server
sequence number
primary
manager
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
CN201511033618.9A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201511033618.9A priority Critical patent/CN106933675A/zh
Publication of CN106933675A publication Critical patent/CN106933675A/zh
Pending legal-status Critical Current

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种处理任务的方法、管理器、服务器及系统,所述方法包括:管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;所述管理器将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。提高了分布式系统的工作效率和资源利用率,增大了分布式系统的处理能力。

Description

一种处理任务的方法、管理器、服务器及系统
技术领域
本发明涉及计算机领域,特别涉及一种处理任务的方法、管理器、服务器及系统。
背景技术
目前,分布式系统应用十分广泛。通常要求分布式系统具有可靠性,即:当分布式系统中的一台服务器出现故障时,要求其他服务器能够感知到这一故障并接替出现故障的服务器。
分布式系统中通常将一台服务器作为主用服务器,将其他服务器作为备用服务器,通常情况下主用服务器工作,备用服务器处于空闲状态。当主用服务器出现故障时,由一台备用服务器接替发生故障的主用服务器,该备用服务器成为新的主用服务器。因此,分布式系统能够提供的处理能力为一台服务器(即主用服务器)的处理能力,并且使用的资源是一台主用服务器和所有备用服务器,如果主用服务器未发生故障,则所有备用服务器都处于空闲状态。可见,分布式系统提供的处理能力小,且资源利用率低。
发明内容
本发明实施例提供一种处理任务的方法、管理器、服务器及系统,提高了分布式系统的工作效率和资源利用率,增大了分布式系统的处理能力。
本发明实施例第一方面提供了一种处理任务的方法,所述方法包括:
管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
所述管理器将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
为每个任务确定该任务的主用服务器,这样,多个任务中每个任务的主用服务器并行处理,一方面提高了分布式系统的工作效率,另一方面也利用了分布式系统中的多个服务器,提高了资源利用率,并且分布式系统的处理能力为多个服务器的处理能力,增大了分布式系统的处理能力。
结合第一方面,在第一方面的第一种可能的实现方式中,所述管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,包括:
所述管理器为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
所述管理器将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
提供了一种确定一个任务的主用服务器的方式为:为申请一个任务的多个服务器分别分配该任务的一个序号,然后分配到的序号属于该任务的第一组序号的服务器为该任务的主用服务器。方便快捷地确定一个任务的主用服务器。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
所述第一任务的所有序号用于区分主用服务器和备用服务器,所述管理器将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级,所述管理器将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器,所述管理器将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
一个任务的所有序号代表不同的含义,根据一个任务的所有序号代表的含义,确定该任务的第一组序号,进而确定该任务的主用服务器。提供了确定一个任务的主用服务器的多种确定方式。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
在所述第一任务的主用服务器发生故障时,所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
所述管理器将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
在一个任务的主用服务器发生故障时,从申请该任务的剩余服务器中确定该任务的新的主用服务器,保证了分布式系统的可靠性,提供了基于任务粒度的可靠性。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,包括:
所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器,包括:
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级,所述管理器将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器,所述管理器将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
申请处理一个任务的剩余服务器分配到的序号代表不同的含义,根据申请处理一个任务的剩余服务器分配到的序号代表的含义,确定该任务的新的主用服务器。提供了确定一个任务的新的主用服务器的多种确定方式。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第五种可能的实现方式中的任意一种,在第一方面的第六种可能的实现方式中,所述方法还包括:
所述管理器按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
提供了多种调度规则对任务或者服务器进行调度,实现了负载均衡,使得分布式系统中的任务尽量均匀地分配在分布式系统的各个服务器上。
本发明实施例第二方面提供了一种处理任务的方法,所述方法包括:
服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
所述服务器处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
服务器具有确定自身是否是一个任务的主用服务器的功能,一个服务器既可以作为一个任务的主用服务器,同时又可以作为申请另一个任务的多个服务器中的一个,提供了服务器对任务进行识别的功能。
结合第二方面,在第二方面的第一种可能的实现方式中,所述服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,包括:
所述服务器确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
服务器根据分配到的每个任务的一个序号,确定自身是否是分配到的每个任务的主用服务器,进而执行主用逻辑或者备用逻辑,即:如果该服务器根据分配到的一个任务的一个序号确定自身是该任务的主用服务器,则处理该任务;如果根据分配到的一个任务的一个序号确定自身是申请处理该任务的剩余服务器中的一个,则在该任务的主用服务器发生故障时,处理该任务或该任务的剩余部分。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
本发明实施例第三方面提供了一种处理任务的管理器,所述管理器用于执行本发明实施例第一方面提供的处理任务的方法。
本发明实施例第四方面提供了一种处理任务的服务器,所述服务器用于执行本发明实施例第二方面提供的处理任务的方法。
本发明实施例第五方面提供了一种处理任务的系统,所述系统包括:
如本发明实施例第三方面提供的处理任务的管理器;
至少一个如本发明实施例第三方面提供的处理任务的服务器。
本发明实施例第六方面提供了一种处理任务的管理器,包括:
处理器、发送器、存储器和总线,所述处理器与所述存储器通过所述总线连接,所述处理器用于:
从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
所述发送器用于:将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
结合第六方面,在第六方面的第一种可能的实现方式中,所述处理器用于:
为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
所述发送器用于:将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述处理器还用于:
所述第一任务的所有序号用于区分主用服务器和备用服务器,将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级,将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器,将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
结合第六方面的第一种可能的实现方式,在第六方面的第三种可能的实现方式中,所述处理器还用于:
在所述第一任务的主用服务器发生故障时,所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
所述发送器还用于:将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
结合第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述处理器用于:
根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
结合第六方面的第四种可能的实现方式,在第六方面的第五种可能的实现方式中,所述处理器用于:
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级,将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器,将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
结合第六方面或第六方面的第一种可能的实现方式至第六方面的第五种可能的实现方式中的任意一种,在第六方面的第六种可能的实现方式中,所述处理器还用于:
按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
本发明实施例第七方面提供了一种处理任务的服务器,包括:
处理器、存储器和总线,所述处理器与所述存储器通过所述总线连接,所述处理器用于:
确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
结合第七方面,在第七方面的第一种可能的实现方式中,所述处理器用于:
确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
结合第七方面或第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,为每个任务确定该任务的主用服务器,这样,多个任务中每个任务的主用服务器并行处理,一方面提高了分布式系统的工作效率,另一方面也利用了分布式系统中的多个服务器,提高了资源利用率,并且分布式系统的处理能力为多个服务器的处理能力,增大了分布式系统的处理能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的处理任务的方法的流程图;
图2为本发明实施例提供的处理任务的方法适用的分布式系统的示意图;
图3为本发明实施例提供的另一种处理任务的方法的流程图;
图4为本发明实施例提供的又一种处理任务的方法的流程图;
图5为本发明实施例中管理器与服务器的交互示意图;
图6为本发明实施例提供的处理任务的管理器的框图;
图7为本发明实施例提供的处理任务的管理器的结构示意图;
图8为本发明实施例提供的处理任务的服务器的框图;
图9为本发明实施例提供的处理任务的服务器的结构示意图;
图10为本发明实施例提供的处理任务的系统的架构示意图;
图11为本发明实施例提供的处理任务的系统的架构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合说明书附图对本发明实施例作进一步详细描述。
本发明实施例提供了一种处理任务的方法。请参考图1,图1为本发明实施例提供的处理任务的方法的流程图。该处理任务的方法包括以下步骤:
步骤11:管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
步骤12:所述管理器将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
其中,管理器可以是一个或多个独立的物理实体,例如:一个或多个服务器(以下统称为管理服务器),所述服务器包括处理器、发送器、接收器和电路等。此时,分布式系统包括:一个或多个管理服务器,以及被一个或多个管理服务器管理的多个服务器。
管理器也可以是某个服务器中的一个逻辑模块,例如:若分布式系统中的一个或多个服务器具有管理分布式系统中的其他服务器的功能,则具有管理其他服务器的功能的服务器本身也可以充当管理器。此时,分布式系统包括:多个服务器,且分布式系统中的一个或多个服务器具有管理其他服务器的功能。
可选的,在步骤11之前,还包括以下步骤:
管理器通知分布式系统中的多个服务器第一任务和第二任务是待处理的,所述第一任务和第二任务不同;
分布式系统中的多个服务器向所述管理器申请处理所述第一任务和所述第二任务中的一个或多个。
本发明实施例中,管理器接收任务处理请求,并对任务处理请求进行分析,确定待处理的任务是什么,然后,管理器通知分布式系统中的多个服务器有待处理的任务,分布式系统中的多个服务器获知有待处理的任务后,向管理器申请处理待处理的任务中的一个或多个。其中,任务可以是一个长期的任务,是分布式系统可以承担的具体的一项软件功能。例如:一个任务可以是集群成员管理、网络连接管理等。
例如:管理器接收任务处理请求,并对任务处理请求进行分析,确定待处理的任务是第一任务和第二任务,然后,管理器通知分布式系统中的多个服务器待处理的任务是第一任务和第二任务,分布式系统中的多个服务器获知待处理的任务是第一任务和第二任务后,向管理器申请处理第一任务和第二任务中的一个或多个。
这样,管理器根据多个服务器的申请,就获知哪些服务器申请处理哪些待处理的任务,然后执行步骤11和步骤12。
以待处理任务是第一任务和第二任务为例,对第一任务,从申请处理第一任务的多个服务器中确定第一任务的主用服务器,对第二任务,从申请处理第二任务的多个服务器中确定第二任务的主用服务器。在确定一个任务的主用服务器后,就将该任务分配给该任务的主用服务器处理。
一个任务的主用服务器的数量可以是1个、2个或2个以上,同一个服务器可以作为1个、2个或2个以上任务的主用服务器。
以图2所示的分布式系统为例,图2所示的分布式系统包括5个服务器:服务器1、服务器2、服务器3、服务器4、服务器5。管理器1部署在服务器1上,服务器1接收到任务处理请求后,对任务处理请求进行分析,确定待处理的任务是3个任务:任务1、任务2和任务3,然后通知服务器2、服务器3、服务器4、服务器5有3个任务(任务1、任务2和任务3)是待处理的,然后,服务器1、服务器2、服务器3、服务器4、服务器5就可以申请处理任务1、任务2和任务3中的0个、1个、2个或2个以上。
假设申请处理任务1的服务器有服务器1、服务器2和服务器3,管理器确定任务1的主用服务器为服务器1,申请处理任务2的服务器有服务器2、服务器3、服务器4,管理器确定任务2的主用服务器为服务器2、服务器3,申请处理任务3的服务器有服务器3、服务器4、服务器5,管理器确定任务3的主用服务器为服务器3、服务器4、服务器5。这样,服务器3既是任务2的主用服务器,也是任务3的主用服务器。
然后,管理器将任务1分配给服务器1处理,将任务2分配给服务器2、服务器3处理,将任务3分配给服务器3、服务器4、服务器5处理。
因此,服务器1获得的任务处理请求中的3个任务就被服务器1、服务器2、服务器3、服务器4、服务器5并行处理,一方面提高了图2所示的分布式系统处理业务的效率,另一方面也利用了图2所示的分布式系统中的多个服务器,提高了资源利用率,并且图2所示的分布式系统的处理能力为多个服务器的处理能力,增大了图2所示的分布式系统的处理能力。
可选的,步骤21中的所述管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,包括:
所述管理器为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
所述管理器将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
具体来讲,管理器确定一个任务的主用服务器的方法为:为申请处理该任务的多个服务器中的每个服务器分别分配该任务的一个序号,该任务的所有序号包括至少两组序号,至少两组序号中有一组序号为该任务的第一组序号。然后将分配到该任务的第一组序号的服务器作为该任务的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,则分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,假设将0作为任务1的第一组序号,将1、2作为任务1的第二组序号,则由于服务器1分配到的任务1的序号为0,所以任务1的主用服务器为服务器1。
可选的,所述方法还包括:
所述第一任务的所有序号用于区分主用服务器和备用服务器,所述管理器将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级,所述管理器将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器,所述管理器将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
具体来讲,根据管理器的设置,一个任务的所有序号可以代表不同的含义。
第一种情况是:管理器设置一个任务既有主用服务器,又有备用服务器,则一个任务的所有序号用于区分主用服务器和备用服务器,代表主用服务器的序号为该任务的第一组序号,代表备用服务器的序号为该任务的所有序号中不同于该任务的第一组序号的序号。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,图1所示的管理器设置任务1既有主用服务器,又有备用服务器。分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,假设0代表主用服务器的序号,1、2代表备用服务器的序号,则0作为任务1第一组序号,1、2作为任务1的第二组序号,因此,服务器1为任务1的主用服务器,服务器2和服务器3为任务1的备用服务器。
第二种情况是:管理器设置一个任务有主用服务器,不一定有备用服务器。且一个任务的所有序号代表作为该任务的主用服务器的优先级,序号的值越小,优先级越高。代表的优先级大于第一预定阈值的序号为该任务的第一组序号(即为该任务的主用服务器的序号)。如果该任务有备用服务器,则该任务的所有序号中除该任务的第一组序号外剩余的序号为该任务的备用服务器的序号。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,如果管理器设置任务1既有主用服务器,又有备用服务器,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,序号的值越小,优先级越高,则序号0、1、2代表的优先级依次降低。假设代表的优先级最高的序号为任务1的第一组序号(即为任务1的主用服务器的序号),则0作为任务1第一组序号,1、2作为任务1的第二组序号,因此,服务器1为任务1的主用服务器,服务器2和服务器3为任务1的备用服务器。如果管理器设置任务1有主用服务器,没有备用服务器,则服务器2和服务器3不是任务1的备用服务器。
第三种情况是:管理器设置一个任务有主用服务器,不一定有备用服务器,且一个任务的所有序号代表用于区分申请该任务的不同服务器,由分布式系统设置第一预定规则,根据第一预定规则对序号进行计算,进而确定该任务的第一组序号(即为该任务的主用服务器的序号)。如果该任务有备用服务器,则该任务的所有序号中除该任务的第一组序号外剩余的序号为该任务的备用服务器的序号。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,如果管理器设置任务1既有主用服务器,又有备用服务器,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,管理器设置的第一预定规则为:值为奇数的序号为任务1的第一组序号(即为任务1的主用服务器的序号),则1作为任务1第一组序号,0、2作为任务1的第二组序号,因此,服务器2为任务1的主用服务器,服务器1和服务器3为任务1的备用服务器。如果管理器设置任务1有主用服务器,没有备用服务器,则服务器1和服务器3不是任务1的备用服务器。
可选的,所述方法还包括:
在所述第一任务的主用服务器发生故障时,所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
所述管理器将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
考虑到分布式系统需要具有可靠性,因此,在一个任务的主用服务器发生故障时,需要从申请处理该任务的剩余服务器中确定该任务的新的主用服务器,然后将该任务或者该任务的剩余部分分配给该任务的新的主用服务器处理,该任务的剩余部分为该任务中该任务的主用服务器未处理完的部分。可见,本发明实施例提供了任务粒度的可靠性,在一个任务的主用服务器发生故障时,确定该任务的新的主用服务器即可。
其中,申请处理该任务的剩余服务器不一定是该任务的备用服务器。如果管理器设置该任务既有主用服务器,又有备用服务器,则申请处理该任务的剩余服务器即为该任务的备用服务器,在该任务的主用服务器发生故障时,从该任务的备用服务器中确定该任务的新的主用服务器;如果管理器设置该任务没有备用服务器,则从申请该任务的剩余服务器中确定该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2。如果管理器设置任务1既有主用服务器,又有备用服务器,服务器1为任务1的主用服务器,服务器2和服务器3为任务1的备用服务器。如果服务器1发生故障,则从服务器2和服务器3中确定任务1的新的主用服务器。如果管理器设置任务1有主用服务器,没有备用服务器,服务器1为任务1的主用服务器,如果服务器1发生故障,则从服务器2和服务器3中确定任务1的新的主用服务器。
假设确定任务1的新的主用服务器为服务器2,则将任务1或者任务1的剩余部分分配给服务器2处理,其中,任务1的剩余部分为任务1中服务器1未处理完的部分。
可选的,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,包括:
所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
在前述确定一个任务的主用服务器的方法中,将分配到该任务的第一组序号的服务器作为该任务的主用服务器,因此,申请处理该任务的剩余服务器分配到的序号为该任务的其他组序号,该任务的其他组序号为该任务的所有序号中不同于该任务的第一组序号的序号。
从申请处理一个任务的剩余服务器中确定一个任务的新的主用服务器的方法为:根据申请处理该任务的剩余服务器中每个服务器分别分配到的该任务的一个序号,确定该任务的新的主用服务器。
可选的,所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级,所述管理器将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器,所述管理器将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
具体来讲,如果一个任务的所有序号用于区分主用服务器和备用服务器,则该任务既有主用服务器,又有备用服务器,申请该任务的剩余服务器分别分配到的该任务的一个序号为该任务的备用服务器的序号,备用服务器的序号的值可以代表作为新的主用服务器的优先级,序号的值越小,优先级越高。分配到的序号代表的优先级大于第二预定阈值的服务器为该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,假设0代表任务1的主用服务器的序号,1、2代表任务1的备用服务器的序号,则0作为任务1第一组序号,1、2作为任务1的第二组序号,因此,服务器1为任务1的主用服务器,服务器2和服务器3为任务1的备用服务器。在服务器1发生故障时,由于为服务器2和服务器3分配到的序号分别为1、2,序号的值越小,作为新的主用服务器的优先级越高,则序号1、2代表的作为新的主用服务器的优先级依次降低。因此,服务器2为任务1的新的主用服务器。
如果一个任务的所有序号用于区分主用服务器和备用服务器,则该任务既有主用服务器,又有备用服务器,申请该任务的剩余服务器分别分配到的该任务的一个序号为该任务的备用服务器的序号,备用服务器的序号的值可以代表用于区分申请该任务的不同服务器,由分布式系统设置第二预设规则,根据第二预设规则对序号进行计算,进而确定该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,假设0代表任务1的主用服务器的序号,1、2代表任务1的备用服务器的序号,则0作为任务1第一组序号,1、2作为任务1的第二组序号,因此,服务器1为任务1的主用服务器,服务器2和服务器3为任务1的备用服务器。在服务器1发生故障时,由于为服务器2和服务器3分配到的序号分别为1、2,管理器设置的规则为:分配到的序号的值为奇数的服务器为任务1的新的主用服务器,则服务器2为任务1的新的主用服务器。
如果一个任务的所有序号代表作为该任务的主用服务器的优先级,则该任务有主用服务器,不一定有备用服务器。申请该任务的剩余服务器分别分配到的该任务的一个序号的值可以代表作为新的主用服务器的优先级,序号的值越小,优先级越高。分配到的序号代表的优先级大于第二预定阈值的服务器为该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,序号的值越小,优先级越高,则序号0、1、2代表的优先级依次降低。假设服务器1为任务1的主用服务器,服务器2和服务器3为申请任务1的剩余服务器。在服务器1发生故障时,由于为服务器2和服务器3分配到的序号分别为1、2,序号的值越小,作为新的主用服务器的优先级越高,则序号1、2代表的作为新的主用服务器的优先级依次降低。因此,服务器2为任务1的新的主用服务器。
如果一个任务的所有序号代表作为该任务的主用服务器的优先级,则该任务有主用服务器,不一定有备用服务器。申请该任务的剩余服务器分别分配到的该任务的一个序号的值可以代表用于区分申请该任务的不同服务器,由管理器设置第二预定规则,根据第二预定规则对序号进行计算,进而确定该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,序号的值越小,优先级越高,则序号0、1、2代表的优先级依次降低。假设服务器1为任务1的主用服务器,服务器2和服务器3为申请任务1的剩余服务器。在服务器1发生故障时,由于为服务器2和服务器3分配到的序号分别为1、2,管理器设置的第二预定规则为:值为奇数的序号为任务1的新的主用服务器的序号,则服务器2为任务1的新的主用服务器。
如果一个任务的所有序号代表用于区分申请该任务的不同服务器,则该任务有主用服务器,不一定有备用服务器。申请该任务的剩余服务器分别分配到的该任务的一个序号的值可以代表用于区分申请该任务的不同服务器,由分布式系统设置第二预定规则,根据第二预定规则对序号进行计算,进而确定该任务的新的主用服务器。
继续以前述任务1为例,假设申请处理任务1的服务器有服务器1、服务器2和服务器3,分别为服务器1、服务器2、服务器3分配任务1的一个序号:0、1、2,管理器设置的规则为:值为奇数的序号为任务1的主用服务器的序号,因此,服务器2为任务1的主用服务器。在服务器2发生故障时,由于为服务器2和服务器3分配到的序号分别为1、2,管理器设置的规则为:值为偶数的序号为任务1的新的主用服务器的序号,则服务器3为任务1的新的主用服务器。
可选的,所述方法还包括:
所述管理器按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的任务的总数有最大值,如果一个服务器为一个任务的主用服务器中的一个,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的任务的总数有最大值,一个服务器并行待处理的任务的总数的额定值小于所述任务并行待处理的任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
考虑到分布式系统除需要具有可靠性外,还要实现负载均衡。因此,在执行完上述处理任务的方法后,还需要按照调度规则,对服务器或者任务进行调度,以实现负载均衡。调度规则包括:
1)任一任务的所有序号依次为从0开始的连续的整数;
2)任一任务的所有序号的总数有最大值;
3)任一服务器的并行处理的任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
4)任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
5)任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
6)任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
7)任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
具体来讲,为了方便快捷地确定一个任务的主用服务器以及新的主用服务器,一个任务的所有序号依次为从0开始的连续的整数。在第一次为一个任务确定主用服务器时,为申请该任务的多个服务器分别分配的序号依次为从0开始的连续的整数,在该任务的主用服务器发生故障时,一方面,从申请处理该任务的剩余服务器中确定该任务的新的主用服务器,另一方面,为申请处理该任务的剩余服务器分配的该任务的序号进行更新,保持该任务的所有序号依次为从0开始的连续的整数。
管理器可以设置任一任务的所有序号的总数的最大值,也就是说,对于一个任务,最多有多少个服务器能够分配到该任务的一个序号。在执行完上述处理任务的方法后,如果分配到一个任务的序号的服务器的总数超过了该服务器的所有序号的总数的最大值,则需要对服务器进行调度,保证分配到该任务的序号的服务器的总数不大于该服务器的所有序号的总数的最大值。
例如:管理器设置前述任务1的所有序号的总数的最大值为3,那么最多有3个服务器会分配到任务1的一个序号。如果执行完上述处理任务的方法后,有4个服务器分配到任务1的一个序号,则需要对服务器进行调度,保证分配到任务1的一个序号的服务器的总数不会超过3。
管理器还可以设置分布式系统中任一服务器并行处理的多个任务的总数的最大值,如果一个服务器并行处理多个任务,则该服务器同时为这多个任务的主用服务器。
例如:管理器设置前述服务器1并行处理的多个任务的总数的最大值为3,则服务器1最多能同时作为3个任务的主用服务器。如果执行完上述处理任务的方法后,服务器1同时作为4个任务的主用服务器,则需要对4个任务中的至少1个任务进行调度,以保证服务器1并行处理的多个任务的总数不会超过3。
管理器还可以设置服务器并行待处理的多个任务的额定值,额定值是指服务器处于正常工作状态下,能够承受的并行待处理任务的最大值,一个服务器的待处理任务是指该服务器申请了该任务,但并未称为该任务的主用服务器,在该任务的主用服务器发生故障时,可能成为该任务的新的主用服务器。
例如:管理器设置前述服务器1并行待处理的多个任务的总数的额定值为2,则服务器1在正常工作状态下最多能同时作为2个任务的备用服务器,或者服务器1在正常工作状态下最多能同时作为申请2个任务的剩余服务器。如果执行完上述处理任务的方法后,服务器1同时作为4个任务的备用服务器或者服务器1同时作为申请4个任务的剩余服务器,则需要对4个任务中的至少2个任务进行调度,以保证服务器1在正常工作状态下并行待处理的多个任务的总数不会超过2。
管理器还可以设置服务器并行待处理的多个任务的最大值,最大值是指服务器处于极限工作状态下,短时间内能够承受的并行待处理任务的最大值,一个服务器的待处理任务是指该服务器申请了该任务,但并未称为该任务的主用服务器,在该任务的主用服务器发生故障时,可能成为该任务的新的主用服务器。
例如:管理器设置前述服务器1并行待处理的多个任务的总数的最大值为4,则服务器1在极限工作状态下,短时间内最多能同时作为4个任务的备用服务器,或者服务器1在极限工作状态下,短时间内最多能同时作为申请4个任务的剩余服务器。如果执行完上述处理任务的方法后,服务器1同时作为6个任务的备用服务器或者服务器1同时作为申请6个任务的剩余服务器,则需要对6个任务中的至少2个任务进行调度,以保证服务器1在极限工作状态下,短时间内并行待处理的多个任务的总数不会超过4。
管理器还可以设置任务的合法服务器列表,在任务的合法服务器列表中列出了分布式系统中的哪些服务器可以分配到该任务的一个序号。如果一个服务器分配到了一个任务的序号,但是该服务器不属于该任务的合法服务器列表中的服务器,则需要对该任务进行调度,将该任务的序号分配到该任务的合法服务器上。
例如:管理器设置前述任务1的合法服务器列表为:服务器1、服务器2和服务器3,如果在执行完上述处理任务的方法后,服务器4分配到任务1的一个序号,则需要对任务1进行调度,将任务1分配给服务器4的需要分配给服务器1、服务器2或者服务器3。
管理器还可以设置服务器的合法任务类型列表,在服务器的合法任务类型列表中列出了哪些任务类型的任务可以分配给该服务器。如果一个服务器分配到的任务的任务类型不属于该服务器的合法任务类型列表中的任务类型,则需要对该任务进行调度,将该任务分配到其他服务器上。
例如:管理器设置前述服务器1的合法任务类型列表为:任务类型1、任务类型2和任务类型3,如果在执行完上述处理任务的方法后,服务器1分配到任务类型为4的一个任务,则需要对任务类型为4的任务进行调度,将任务类型为4的任务分配到其他服务器上。
下面从服务器侧说明本发明实施例提供的任务处理方法。请参考图3,图3为本发明实施例提供的另一种处理任务的方法的流程图。该方法包括以下步骤:
步骤31:服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
步骤32:所述服务器处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
本发明实施例中,一个服务器可以同时申请多个任务,这样,该服务器就可能作为一个任务的主用服务器,同时也作为申请其他任务的剩余服务器中的一个。
例如:服务器确定自身为第二任务的主用服务器,且为申请第一任务的剩余服务器中的一个,那么该服务器就处理第二任务,并且在第一任务的主用服务发生故障时,处理第一任务或第一任务的剩余部分,第一任务的剩余部分为第一任务中第一任务的主用服务器未处理完的部分。
以前述服务器1为例,服务器1确定自身为任务1的主用服务器,且为申请任务2的剩余服务器中的1个,则服务器1处理任务1,并且在任务2的主用服务器发生故障时,处理任务2或者任务2的剩余部分,任务2的剩余部分为任务2中任务2的主用处理器未处理完的部分。
可选的,所述服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,包括:
所述服务器确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
具体来讲,一个服务器确定自身为一个任务的主用服务器或为申请一个任务的剩余服务器中的一个的方法为:判断分配到该任务的一个序号是否是该任务的第一组序号中的一个,如果是,则确定自身为该任务的主用服务器,如果否,则确定自身为申请该任务的剩余服务器中的一个。
例如:以前述服务器1为例,服务器1申请处理任务1和任务2,服务器1分配到任务1的一个序号为0,属于任务1的第一组序号中的一个,则确定自身为任务1的主用服务器,且服务器1分配到任务2的一个序号为3,不属于任务2的第一组序号中的一个,则确定自身为申请任务2的剩余服务器中的一个。
可见,本发明实施例中,服务器能够根据分配到的一个任务的一个序号,执行主用逻辑或者备用逻辑,即:如果该服务器根据分配到的一个任务的一个序号确定自身是该任务的主用服务器,则处理该任务;如果根据分配到的一个任务的一个序号确定自身是申请处理该任务的剩余服务器中的一个,则在该任务的主用服务器发生故障时,处理该任务或该任务的剩余部分。
可选的,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
考虑到申请处理一个任务的剩余服务器有多个,为了避免多个服务器同时对同一个任务进行处理影响负载均衡,服务器在确定自身是申请处理一个任务的剩余服务器中的一个后,还要是确定自身是该任务的新的主用服务器,才能在该任务的主用服务器发生故障时,处理该任务或者该任务的剩余部分。一个服务器确定自身是否是一个任务的新的主用服务器的方法为:根据申请处理该任务的剩余服务器中的每个服务器分别分配到的该任务的一个序号确定。
例如:以前述服务器1和服务器2为例,服务器1申请处理任务1和任务2,服务器2申请处理任务2,服务器1分配到任务1的一个序号为0,属于任务1的第一组序号中的一个,则确定自身为任务1的主用服务器,服务器1处理任务1。
服务器1分配到任务2的一个序号为3,不属于任务2的第一组序号中的一个,则确定自身为申请处理任务2的剩余服务器中的一个。服务器2分配到任务2的一个序号为4,不属于任务2的第一组序号中的一个,则确定自身为申请处理任务2的剩余服务器中的一个。
如果服务器1根据申请处理任务2的剩余服务器中的每个服务器分别分配到的任务2的一个序号,确定自身为任务2的新的主用服务器,服务器2根据申请处理任务2的剩余服务器中的每个服务器分别分配到的任务2的一个序号,确定自身不为任务2的新的主用服务器,则由服务器1处理任务2或者任务2的剩余部分。
下面分布式系统侧说明本发明实施例提供的任务处理方法。请参考图4,图4为本发明实施例提供的另一种处理任务的方法的流程图。该方法包括以下步骤:
步骤41:管理器通知分布式系统中的多个服务器第一任务和第二任务是待处理的,所述第一任务和第二任务不同;
步骤42:分布式系统中的多个服务器向所述管理器申请处理所述第一任务和所述第二任务中的一个或多个;
步骤43:所述管理器从申请处理所述第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理所述第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
步骤44:所述管理器将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理;
步骤45:分布式系统中的第一服务器确定所述第一服务器是所述第一任务的主用服务器,处理所述管理器分配给所述第一服务器的所述第一任务,分布式系统中的第二服务器确定所述第二服务器是所述第二任务的主用服务器,处理所述管理器分配给所述第二服务器的所述第二任务。
具体来讲,请参考图5,图5为本发明实施例中管理器与服务器的交互示意图。管理器与服务器的交互过程为:
1、管理器接收任务处理请求,并对任务处理请求进行分析,确定第一任务和第二任务是待处理的;
2、管理器通知第一服务器和第二服务器第一任务和第二任务是待处理的;
3、第一服务器和第二服务器向管理器申请处理第一任务和第二任务中的一个或多个;
4、管理器从申请处理第一任务的多个服务器中确定第一任务的主用服务器,从申请处理第二任务的多个服务器中确定第二任务的主用服务器;
5、管理器将第一任务分配给第一任务的主用服务器,将第二任务分配给第二任务的主用服务器;
6、第一服务器确定自身是第一任务的主用服务器,则处理管理器分配给自身的第一任务;
7、第二服务器确定自身是第二任务的主用服务器,则处理管理器分配给自身的第二任务。
可选的,所述方法还包括:
分布式系统中的所述第一服务器确定所述第一服务器是申请处理第二任务的剩余服务器中的一个,所述申请处理第二任务的剩余服务器为申请处理第二任务的多个服务器中除所述第二任务的主用服务器外的服务器;
所述第一服务器在所述第二任务的主用服务器发生故障时,处理所述第二任务或所述第二任务中的剩余部分,所述第二任务的剩余部分为所述第二任务中所述第二任务的主用服务器未处理完的部分。
具体来讲,请继续参考图5,管理器与服务器的交互过程还包括:
8、第一服务器确定自身是申请处理第二任务的剩余服务器中的一个;
9、管理器通知第一服务器第二任务的主用服务器发生故障;
10、第一服务器处理第二任务或第二任务中的剩余部分。
下面举两个例子说明本发明实施例提供的技术方案。
实施例一
该实施例将本发明实施例提供的技术方案应用于分布式控制器管理Openflow连接。在该实施例中,Direct FIP即为任务,分布式控制器即为服务器。
管理器接收任务处理请求,任务处理请求为请求实现Openflow连接。所有任务由管理器统一创建,一般策略为Direct FIP的数量和分布式系统中分布式控制器的数量相同,使得一般情况下每个分布式控制器承担一个Direct FIP。每个Direct FIP的主用服务器监听FIP的Openflow端口,等待Switch连接。
从可靠性方面,一个Direct FIP的主用服务器发生故障后,释放该Direct FIP任务;该任务的备用服务器或者申请该任务的剩余服务器获得通知,开启对该Direct FIP的监听,等待Openflow交换机设备重连。
从可扩展性方面,如果有新的分布式控制器加入分布式系统,则管理器相应地增加Direct FIP任务即可。如果有分布式控制器退出分布式系统,则该分布式控制器处理的Direct FIP被分布式系统中的其他分布式控制器接管,Switches重连。
从实现负载均衡方面,以Direct FIP连接的Switch组为调度单位,可以通过删除一个Direct FIP的主用服务器,主动将某组Switch的负载迁移到其他分布式控制器上。
实施例二
该实施例将本发明实施例提供的技术方案应用于分布式控制器实现业务编排,业务编排是分布式控制器的一项软件服务,可以分布式地运行于分布式控制器上。在该实施例中,业务编排即为任务,分布式控制器即为服务器。
业务编排任务由接收北向请求的分布式控制器创建。创建后,各个分布式控制器竞争获得业务编排任务和执行该任务的序号。序列号为0的分布式控制器作为业务编排任务的主用服务器开始执行业务编排任务,获取到其他序号的分布式控制器作为该业务编排任务的备用服务器。
该实施例实现可靠性、可扩展性、负载均衡的方式同实施例一。
基于同一发明构思,本发明实施例还提供一种处理任务的管理器,请参考图6,图6为本发明实施例提供的处理任务的管理器的框图。图6所示的管理器涉及到的术语的含义以及具体实现,可以参考前述图1至图5以及实施例的相关描述。本发明实施例提供的处理任务的管理器包括:
第一确定单元601,用于从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
第一分配任务单元602,用于将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
可选的,所述第一确定单元601包括:
分配序号子单元,用于为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
第一确定子单元,用于将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
可选的,所述管理器还包括:
第二确定单元,用于在所述第一任务的所有序号用于区分主用服务器和备用服务器时,将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
第三确定单元,用于在所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级时,将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
第四确定单元,用于在所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器时,将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
可选的,所述管理器还包括:
第五确定单元,用于在所述第一任务的主用服务器发生故障时,从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
第二分配任务单元,用于将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
可选的,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述第五确定单元用于:
所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
可选的,所述第五确定单元包括:
第二确定子单元,用于在所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级时,将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
第三确定子单元,用于在所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器时,将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
可选的,所述管理器还包括:
调度单元,用于按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
前述图1实施例中的处理任务的方法中的各种变化方式和具体实例同样适用于本实施例的管理器,通过前述对处理任务的方法的详细描述,本领域技术人员可以清楚的知道本实施例中管理器的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本发明实施例还提供一种处理任务的管理器,请参考图7,图7为本发明实施例提供的处理任务的管理器的框图。图7所示的管理器涉及到的术语的含义以及具体实现,可以参考前述图1至图5以及实施例的相关描述。本发明实施例提供的处理任务的管理器包括:
处理器701、发送器702、存储器703和总线700,所述处理器701与所述存储器703通过所述总线700连接,所述处理器701用于:
从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
所述发送器702用于:将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
可选的,所述处理器701用于:
为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
所述发送器702用于:将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
可选的,所述处理器701还用于:
所述第一任务的所有序号用于区分主用服务器和备用服务器,将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级,将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器,将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
可选的,所述处理器701还用于:
在所述第一任务的主用服务器发生故障时,所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
所述发送器702还用于:将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
可选的,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述处理器701用于:
根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
可选的,所述处理器701用于:
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级,将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器,将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
可选的,所述处理器701还用于:
按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
其中,在图7中,总线架构(用总线700来代表),总线700可以包括任意数量的互联的总线和桥,总线700将包括由处理器701代表的一个或多个处理器和存储器703代表的存储器的各种电路连接在一起。总线700还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口704在总线700和发送器702之间提供接口。发送器702可以是收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器701负责管理总线700和通常的处理,而存储器703可以被用于存储处理器701在执行操作时所使用的数据。前述图1实施例中的处理任务的方法中的各种变化方式和具体实例同样适用于本实施例的管理器,通过前述对处理任务的方法的详细描述,本领域技术人员可以清楚的知道本实施例中管理器的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本发明实施例还提供一种处理任务的服务器,请参考图8,图8为本发明实施例提供的处理任务的服务器的框图。图8所示的服务器涉及到的术语的含义以及具体实现,可以参考前述图1至图5以及实施例的相关描述。本发明实施例提供的处理任务的服务器包括:
确定单元801,用于确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
任务处理单元802,用于处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
可选的,所述确定单元801用于:
确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
可选的,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
前述图3实施例中的处理任务的方法中的各种变化方式和具体实例同样适用于本实施例的管理器,通过前述对处理任务的方法的详细描述,本领域技术人员可以清楚的知道本实施例中管理器的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本发明实施例还提供一种处理任务的服务器,请参考图9,图9为本发明实施例提供的处理任务的服务器的框图。图9所示的服务器涉及到的术语的含义以及具体实现,可以参考前述图1至图5以及实施例的相关描述。本发明实施例提供的处理任务的服务包括:
处理器901、存储器902和总线900,所述处理器901与所述存储器902通过所述总线900连接,所述处理器901用于:
确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
可选的,所述处理器901用于:
确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
可选的,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
其中,在图9中,总线架构(用总线900来代表),总线900可以包括任意数量的互联的总线和桥,总线900将包括由处理器901代表的一个或多个处理器和存储器902代表的存储器的各种电路连接在一起。总线900还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
处理器901负责管理总线900和通常的处理,而存储器902可以被用于存储处理器901在执行操作时所使用的数据。前述图3实施例中的处理任务的方法中的各种变化方式和具体实例同样适用于本实施例的管理器,通过前述对处理任务的方法的详细描述,本领域技术人员可以清楚的知道本实施例中管理器的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本发明实施例还提供一种处理任务的系统,该系统包括:管理器和至少一个服务器。如果管理器是一个或多个独立的物理实体,例如:一个或多个服务器(以下统称为管理服务器),此时,分布式系统包括:一个或多个管理服务器,以及被一个或多个管理服务器管理的多个服务器。请参考图10,图10以分布式系统包括一个管理服务器和3个服务器为例,3个服务器分别为服务器1、服务器2和服务器3。
如果管理器是某个服务器中的一个逻辑模块,例如:若分布式系统中的一个或多个服务器具有管理分布式系统中的其他服务器的功能,则具有管理其他服务器的功能的服务器本身也可以充当管理器。此时,分布式系统包括:多个服务器,且分布式系统中的一个或多个服务器具有管理其他服务器的功能。请参考图11,图11以分布式系统包括3个服务器为例,3个服务器分别为服务器1、服务器2和服务器3,管理器部署在服务器1上。本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,为每个任务确定该任务的主用服务器,这样,多个任务中每个任务的主用服务器并行处理,一方面提高了分布式系统的工作效率,另一方面也利用了分布式系统中的多个服务器,提高了资源利用率,并且分布式系统的处理能力为多个服务器的处理能力,增大了分布式系统的处理能力。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (21)

1.一种处理任务的方法,其特征在于,所述方法包括:
管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
所述管理器将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
2.如权利要求1所述的方法,其特征在于,所述管理器从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,包括:
所述管理器为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
所述管理器将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一任务的所有序号用于区分主用服务器和备用服务器,所述管理器将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级,所述管理器将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器,所述管理器将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一任务的主用服务器发生故障时,所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
所述管理器将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
5.如权利要求4所述的方法,其特征在于,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述管理器从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,包括:
所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
6.如权利要求5所述的方法,其特征在于,所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器,包括:
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级,所述管理器将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器,所述管理器将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
7.如权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
所述管理器按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
8.一种处理任务的方法,其特征在于,所述方法包括:
服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
所述服务器处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
9.如权利要求8所述的方法,其特征在于,所述服务器确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,包括:
所述服务器确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
10.如权利要求8或9所述的方法,其特征在于,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
11.一种处理任务的管理器,其特征在于,所述管理器包括:
第一确定单元,用于从申请处理第一任务的多个服务器中确定所述第一任务的主用服务器,且从申请处理第二任务的多个服务器中确定所述第二任务的主用服务器,所述第一任务的主用服务器与所述第二任务的主用服务器不同;
第一分配任务单元,用于将所述第一任务分配给所述第一任务的主用服务器处理,且将所述第二任务分配给所述第二任务的主用服务器处理。
12.如权利要求11所述的管理器,其特征在于,所述第一确定单元包括:
分配序号子单元,用于为所述申请处理所述第一任务的多个服务器中的每个服务器分别分配所述第一任务的一个序号,所述第一任务的所有序号由包括所述第一任务的第一组序号在内的至少两组序号组成;
第一确定子单元,用于将分配到所述第一任务的第一组序号的服务器作为所述第一任务的主用服务器。
13.如权利要求12所述的管理器,其特征在于,所述管理器还包括:
第二确定单元,用于在所述第一任务的所有序号用于区分主用服务器和备用服务器时,将所述第一任务的所有序号中用于表征主用服务器的序号作为所述第一任务的第一组序号;或
第三确定单元,用于在所述第一任务的所有序号表征作为所述第一任务的主用服务器的优先级时,将所述第一任务的所有序号中用于表征优先级大于第一预定阈值的序号作为所述第一任务的第一组序号;或
第四确定单元,用于在所述第一任务的所有序号用于区分申请处理所述第一任务的多个服务器时,将所述第一任务的所有序号中符合第一预定规则的序号作为所述第一任务的第一组序号。
14.如权利要求12所述的管理器,其特征在于,所述管理器还包括:
第五确定单元,用于在所述第一任务的主用服务器发生故障时,从申请处理所述第一任务的剩余服务器中确定所述第一任务的新的主用服务器,所述申请处理所述第一任务的剩余服务器为所述申请处理所述第一任务的多个服务器中除所述第一任务的主用服务器外的服务器;
第二分配任务单元,用于将所述第一任务或所述第一任务的剩余部分分配给所述第一任务的新的主用服务器处理,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
15.如权利要求14所述的管理器,其特征在于,所述申请处理所述第一任务的剩余服务器分配到的所述第一任务的其他组序号,所述第一任务的其他组序号为所述第一任务的所有序号中不同于所述第一任务的第一组序号的序号;
所述第五确定单元用于:
所述管理器根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号,确定所述第一任务的新的主用服务器。
16.如权利要求15所述的管理器,其特征在于,所述第五确定单元包括:
第二确定子单元,用于在所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号表征作为所述第一任务的新的主用服务器的优先级时,将分配到的用于表征优先级大于第二预定阈值的序号的服务器作为所述第一任务的新的主用服务器;或
第三确定子单元,用于在所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号用于区分所述申请处理第一任务的剩余服务器时,将分配到的序号符合第二预定规则的服务器作为所述第一任务的新的主用服务器。
17.如权利要求11-16任一所述的管理器,其特征在于,所述管理器还包括:
调度单元,用于按照调度规则,对任务或服务器进行调度,所述调度规则包括以下之一或组合:
任一任务的所有序号依次为从0开始的连续的整数;
任一任务的所有序号的总数有最大值;
任一服务器的并行处理的多个任务的总数有最大值,如果一个服务器为一个任务的主用服务器,则所述任务为所述服务器的并行处理的任务中的一个;
任一服务器并行待处理的多个任务的总数有额定值,如果一个服务器为申请处理一个任务的剩余服务器中的一个,则所述任务为所述服务器的并行待处理的多个任务中的一个,其中,申请处理一个任务的剩余服务器为申请处理所述任务的多个服务器中除所述任务的主用服务器外的服务器;
任一服务器并行待处理的多个任务的总数有最大值,一个服务器并行待处理的多个任务的总数的额定值小于所述任务并行待处理的多个任务的总数的最大值;
任一任务有合法服务器列表,如果一个服务器位于一个任务的合法服务器列表中,则允许为所述服务器分配所述任务的一个序号;
任一服务器有合法任务类型列表,如果一个任务的任务类型位于一个服务器的合法任务类型列表中,则允许将所述任务的一个序号分配给所述服务器。
18.一种处理任务的服务器,其特征在于,所述服务器包括:
确定单元,用于确定所述服务器为第二任务的主用服务器,且为申请处理第一任务的剩余服务器中的一个,所述申请处理第一任务的剩余服务器为申请处理第一任务的多个服务器中除所述第一任务的主用服务器外的服务器,所述第二任务与所述第一任务不同;
任务处理单元,用于处理所述第二任务,并在所述第一任务的主用服务器发生故障时,处理所述第一任务或所述第一任务中的剩余部分,所述第一任务的剩余部分为所述第一任务中所述第一任务的主用服务器未处理完的部分。
19.如权利要求18所述的服务器,其特征在于,所述确定单元用于:
确定分配到的所述第二任务的一个序号为所述第二任务的第一组序号中的一个,且分配到的所述第一任务的一个序号为所述第一任务的所有序号中除所述第一任务的第一组序号外的一个。
20.如权利要求18或19所述的服务器,其特征在于,所述服务器为所述第一任务的新的主用服务器,所述第一任务的新的主用服务器是根据所述申请处理第一任务的剩余服务器中的每个服务器分别分配到的所述第一任务的一个序号确定的。
21.一种处理任务的系统,其特征在于,所述系统包括:
如权利要求11-17任一权利要求所述的管理器;
至少一个如权利要求18-20所述的服务器。
CN201511033618.9A 2015-12-31 2015-12-31 一种处理任务的方法、管理器、服务器及系统 Pending CN106933675A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511033618.9A CN106933675A (zh) 2015-12-31 2015-12-31 一种处理任务的方法、管理器、服务器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511033618.9A CN106933675A (zh) 2015-12-31 2015-12-31 一种处理任务的方法、管理器、服务器及系统

Publications (1)

Publication Number Publication Date
CN106933675A true CN106933675A (zh) 2017-07-07

Family

ID=59444667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511033618.9A Pending CN106933675A (zh) 2015-12-31 2015-12-31 一种处理任务的方法、管理器、服务器及系统

Country Status (1)

Country Link
CN (1) CN106933675A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549978A (zh) * 2001-07-16 2004-11-24 BEAϵͳ��˾ 用于会话复制和故障切换的方法和装置
CN101557315A (zh) * 2009-05-15 2009-10-14 成都市华为赛门铁克科技有限公司 一种主备切换方法、装置及系统
US20100118330A1 (en) * 2008-11-07 2010-05-13 Ricardo Fernando Feijoo Systems and Methods for Managing Printer Settings in a Networked Computing Environment
US20110276695A1 (en) * 2010-05-06 2011-11-10 Juliano Maldaner Continuous upgrading of computers in a load balanced environment
CN102902594A (zh) * 2012-09-28 2013-01-30 用友软件股份有限公司 资源管理系统和资源管理方法
US20130298201A1 (en) * 2012-05-05 2013-11-07 Citrix Systems, Inc. Systems and methods for network filtering in vpn
US20140156777A1 (en) * 2012-11-30 2014-06-05 Netapp, Inc. Dynamic caching technique for adaptively controlling data block copies in a distributed data processing system
CN104283948A (zh) * 2014-09-26 2015-01-14 东软集团股份有限公司 服务器集群系统及其负载均衡实现方法
CN104301417A (zh) * 2014-10-22 2015-01-21 网宿科技股份有限公司 一种负载均衡方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549978A (zh) * 2001-07-16 2004-11-24 BEAϵͳ��˾ 用于会话复制和故障切换的方法和装置
US20100118330A1 (en) * 2008-11-07 2010-05-13 Ricardo Fernando Feijoo Systems and Methods for Managing Printer Settings in a Networked Computing Environment
CN101557315A (zh) * 2009-05-15 2009-10-14 成都市华为赛门铁克科技有限公司 一种主备切换方法、装置及系统
US20110276695A1 (en) * 2010-05-06 2011-11-10 Juliano Maldaner Continuous upgrading of computers in a load balanced environment
US20130298201A1 (en) * 2012-05-05 2013-11-07 Citrix Systems, Inc. Systems and methods for network filtering in vpn
CN102902594A (zh) * 2012-09-28 2013-01-30 用友软件股份有限公司 资源管理系统和资源管理方法
US20140156777A1 (en) * 2012-11-30 2014-06-05 Netapp, Inc. Dynamic caching technique for adaptively controlling data block copies in a distributed data processing system
CN104283948A (zh) * 2014-09-26 2015-01-14 东软集团股份有限公司 服务器集群系统及其负载均衡实现方法
CN104301417A (zh) * 2014-10-22 2015-01-21 网宿科技股份有限公司 一种负载均衡方法及装置

Similar Documents

Publication Publication Date Title
US10733026B2 (en) Automated workflow selection
US6947987B2 (en) Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
CN103618621B (zh) 一种软件定义网络sdn的自动配置方法、设备及系统
CN105335229B (zh) 一种业务资源的调度方法和装置
CN105897836A (zh) 一种回源请求处理方法及装置
CN110162388A (zh) 一种任务调度方法、系统及终端设备
CN110166524B (zh) 数据中心的切换方法、装置、设备及存储介质
CN108268317A (zh) 一种资源分配方法及装置
CN108965014A (zh) QoS感知的服务链备份方法及系统
CN112181585A (zh) 虚拟机的资源分配方法及装置
CN108737544B (zh) Cdn节点调度方法和装置
CN105429811A (zh) 网络管理系统及方法
CN108600344A (zh) 一种网络访问请求调度方法、装置和存储介质
CN106648900A (zh) 基于智能电视的超算方法及系统
CN115334084A (zh) 一种基于云计算和互联网的云平台
CN111159859B (zh) 一种云容器集群的部署方法及系统
US9313144B2 (en) Network resource management for parallel computing
Li et al. CoMan: Managing bandwidth across computing frameworks in multiplexed datacenters
CN108880860B (zh) 一种策略管理方法及装置
CN105072049B (zh) 面向数据中心多层次弹性应用的资源分配方法及装置
CN106933675A (zh) 一种处理任务的方法、管理器、服务器及系统
CN108540336A (zh) 一种弹性伸缩调度方法和装置
Pai et al. SLA-driven Ordered Variable-width Windowing for service-chain deployment in SDN datacenters
CN109598411A (zh) 一种产品设计任务的处理方法及电子设备
WO2013137875A1 (en) Allocating bandwidth in a network

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170707