CN106254470A - 分布式作业分片分配方法和装置 - Google Patents

分布式作业分片分配方法和装置 Download PDF

Info

Publication number
CN106254470A
CN106254470A CN201610643130.6A CN201610643130A CN106254470A CN 106254470 A CN106254470 A CN 106254470A CN 201610643130 A CN201610643130 A CN 201610643130A CN 106254470 A CN106254470 A CN 106254470A
Authority
CN
China
Prior art keywords
server
servers
job
load value
capacity
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.)
Granted
Application number
CN201610643130.6A
Other languages
English (en)
Other versions
CN106254470B (zh
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.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Guangzhou Vipshop Information And Technology 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 Guangzhou Vipshop Information And Technology Co Ltd filed Critical Guangzhou Vipshop Information And Technology Co Ltd
Priority to CN201610643130.6A priority Critical patent/CN106254470B/zh
Publication of CN106254470A publication Critical patent/CN106254470A/zh
Application granted granted Critical
Publication of CN106254470B publication Critical patent/CN106254470B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种分布式作业分片分配方法,包括:接收设置指令,根据设置指令为集群域内的各个服务器设定负载值;侦测集群域内的服务器是否存在扩容或减容;当集群域内的服务器存在扩容时,获取集群域内服务器的负载值作为第一负载值,根据第一负载值按照自定义规则获取服务器上指定负载的第一作业分片,将第一作业分片分配至扩容对应的扩容服务器上;或者,当集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取集群域内非减容服务器的负载值作为第二负载值,根据第二负载值将第二作业分片按照指定规则分配至非减容服务器上。本发明还公开了一种分布式作业分片分配装置。本发明提高了作业分片分配的均衡性。

Description

分布式作业分片分配方法和装置
技术领域
本发明涉及服务器资源分配技术领域,尤其涉及一种分布式作业分片分配方法和装置。
背景技术
目前,在执行任务的过程中,一般会存在同一集群域内的服务器上作业分片分配不均匀的情况。例如,VLG域有3台服务器分别为node1、node2和node3,有3个作业分别为job1、job2、job3,其中,job1有1个分片,job2有2个分片,job3有2个分片。node1、node2、node3分别可以执行job1、job2、job3,依次启动node1、node2、node3时,在node1上面跑3个作业分片,在node1上面跑2个作业分片,在node3上面跑了0个作业分片,从而导致作业分片分配不均衡,即资源利用不均匀。另外,由于各个服务器之间并不知道其他服务器存在多少作业分片,因此当集群域内的服务器存在扩容或减容时,服务器上的作业分片是任意分配的,使得各个服务器上作业分片存在分配不均衡。
发明内容
本发明的主要目的在于提供一种分布式作业分片分配方法和装置,旨在提高作业分片分配的均衡性。
为实现上述目的,本发明提供了一种分布式作业分片分配方法,包括:
接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
侦测所述集群域内的服务器是否存在扩容或减容;
当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;或者,
当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
可选地,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:
获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
可选地,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:
获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
可选地,所述根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上包括:
根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
可选地,所述根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上包括:
获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;
当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
此外,为实现上述目的,本发明还提供了一种分布式作业分片分配装置,包括:
设置模块,用于接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
侦测模块,用于侦测所述集群域内的服务器是否存在扩容或减容;
扩容分配模块,用于当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;
减容分配模块,用于当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
可选地,所述扩容分配模块还用于,获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
可选地,扩容分配模块还用于,获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
可选地,所述减容分配模块还用于,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
可选地,所述减容分配模块还用于,获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
本发明实施例提供的分布式作业分片分配方法和装置,通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。
附图说明
图1为本发明分布式作业分片分配方法一实施例的流程示意图;
图2为本发明分配前待分配列表内作业分片与各服务器包含的负载值示意图;
图3为本发明第一轮分配后待分配列表内作业分片与各服务器包含的负载值示意图;
图4为本发明第二轮分配后待分配列表内作业分片与各服务器包含的负载值示意图;
图5为本发明分布式作业分片分配装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,示出了本发明一种分布式作业分片分配方法第一实施例。该实施例的分布式作业分片分配方法包括:
步骤S10、接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
本实施例中,分布式作业分片分配方法应用于集群域,该聚群域内各个服务器根据分配到的资源执行相应的任务。聚群域包括分布式作业分片分配装置,在同一集群域内可包括多个服务器,每个服务器可以执行不同的分布式作业分片。
为了能够获取聚群域内各个服务器的运行情况,首先需要为各个服务器设置负载值,该负载值用于指示服务器执行任务的多少,负载值越大,表示服务器执行任务的越多;负载值越小,表示服务器执行任务的越少。
用户可在指定的用户设置界面(即Saturn UI界面)内,根据实际需要为集群域内的各个服务器设定所需的负载值,在设定服务器的负载值后,该服务器上执行的每个作业分片对应的负载值均相同。例如,当某个服务器执行3个作业分片时,若该服务器设定的负载值为20,则每个作业分片的负载值均是20。
步骤S20、侦测所述集群域内的服务器是否存在扩容或减容;
本实施例中,扩容是指集群域内增加服务器,减容是指损坏或减少服务器,使得服务器无法执行作业分片。分布式作业分片分配装置实时或间隔预设时间侦测集群域内的服务器是否存在扩容或减容,当集群域内的服务器存在扩容或减容,需要摘掉需要重新分配的作业分片,对该作业分片进行重新分配。
步骤S30、当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;
当集群域内的服务器存在扩容时,获取集群域内服务器的负载值作为第一负载值,当集群域内包括一个服务器时,得到的第一负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第一负载值包括各个服务器对应的负载值。
得到第一负载值后,将按照自定义规则获取服务器上指定负载的第一作业分片。当集群域内包括一个服务器时,获取该服务器指定负载的第一作业分片,当集群域内包括多个服务器时,分别获取各个服务器上指定负载的第一作业分片。将得到的第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该第一作业分片,实现了为集群域内的其他服务器分担任务。
该自定义规则可根据具体情况而灵活设置,例如,自定义规则可设置为根据各个服务器的负载值大小,从负载值较大的服务器上获取较多的负载,而负载值较小的服务器上获取较少的负载,分配至扩容服务器上;或者,当存在n-1个服务器时,从各个服务器上获取1/n的负载分配至扩容服务器上,使得各个服务器上的负载均衡。
步骤S40、当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
当集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,该第二作业分片可包括至少一个作业分片,并获取集群域内非减容服务器的负载值作为第二负载值。当集群域内包括一个服务器时,得到的第二负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第二负载值包括各个服务器对应的负载值。
得到第二负载值后,根据第二负载值按照指定规则将第二作业分片分配至非减容服务器上。该指定规则可根据具体情况而灵活设置,例如,指定规则可设置为将第二作业分片按照负载值从大到小,依次分配至第二负载值中负载值由小到大的各个服务器上,实现了为集群域内各个服务器上作业分片的均衡。
以下进行举例说明,在一实施例中,VLG域有2台服务器分别为node1和node2,node1和node2服务器设定的负载值分别为30和30,node1和node2服务器分别执行3个作业分片、3个作业分片。当集群域内增加了一台服务器node3时,从node1和node2服务器上获取负载值为30的1个作业分片,分配至node3服务器上,这样就实现了作业分片的均衡分配。
在另一实施例中,VLG域有3台服务器分别为node1、node2和node3,node1、node2和node3服务器设定的负载值分别为20、20和30,node1、node2和node3服务器分别执行2个作业分片、2个作业分片和1个作业分片。当集群域内损坏了一台服务器node1时,从node1服务器上获取负载值为20的2个作业分片,分别分配至node2和node3服务器上,这样就实现了作业分片的均衡分配。
本发明实施例通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。
进一步地,基于上述分布式作业分片分配方法第一实施例,提出了本发明分布式作业分片分配方法第二实施例,该实施例中上述步骤S30包括:获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,可通过获取集群域内非扩容服务器的个数n-1,根据个数n-1及第一负载值在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将该第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该作业分片,其中n≥2。例如,假设每个服务器的负载值均为1,当集群域内有5个服务器时,增加了一个服务器后,可从5个服务器中分别获取1/6的负载分配至扩容服务器上,使得6个服务器上均有5/6的负载。
进一步地,上述步骤S30还包括:获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,还可将集群域内所有非扩容服务器上总的第一作业分片,根据上述得到的第一负载值及集群域内非扩容服务器和扩容服务器的总数,对得到总的第一作业分片进行均分,将平均后的第一作业分片分配至各个非扩容服务器和扩容服务器上。例如,当集群域内有5个服务器时,增加了一个服务器后总共有6个服务器,可从原有的5个服务器中获取得到的总负载值为60,此时,可将为6个服务器中的每个服务器均分配的负载值为10。当前扩容服务器上作业分片的分配方式也可根据实际需要进行设置,并不限定本发明。
本实施例当集群域内的服务器存在扩容时,根据负载值为扩容服务器合理分配作业分片,不仅利用扩容服务器为集群域内的其他服务器分担任务,而且实现了集群域内各个服务器的作业分片分配均衡。
进一步地,基于上述分布式作业分片分配方法第一或第二实施例,提出了本发明分布式作业分片分配方法第三实施例,该实施例中上述步骤S40包括:根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
本实施例中,当集群域内的服务器存在减容时,在获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值后,可设置待分配列表用于存储等待分配的作业分片,可将获取得到的第二作业分片按照负载值从大到小存储至待分配列表中。然后将分配列表中按照负载值从大到小排序的第二作业分片,依次分配至负载值由小到大的各个服务器上。
进一步地,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上的步骤包括:获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
本实施例中,当待分配列表中的待分配的第二作业分片的个数,大于集群域内非减容服务器的个数时,可循环按照第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上的顺序,将第二作业分片进行分配。如图2所示,在对第二作业分配进行分配之前,待分配列表中存在负载值分别为30、30、20、20、10、10的作业分片,而在集群域内包括负载值分别为20、20、30的node1服务器、node2服务器和node3服务器。如图3所示,在进行第一轮分配时,首先将负载值较大的作业分片,即负载值从大到小为30、30、20的作业分片,依次分配至负载值由小到大的node1服务器、node2服务器和node3服务器上。如图4所示,由于待分配列表中的作业分片还没有分配完,因此需要进行第二轮分配。而在第一轮分配结束后,node1服务器、node2服务器和node3服务器的负载值均为50,此时将待分配列表中的负载值从大到小为20、10、10的作业分片,依次分配至各个服务器上,从而完成了作业分片的分配。
本实施例当集群域内的服务器存在减容时,将减容服务器上的第二作业分片按照负载值从大到小依次分配至负载值由小到大的各个服务器上,提高了作业分片分配的均衡性。
对应地,如图5所示,提出本发明一种分布式作业分片分配装置第一实施例。该实施例的分布式作业分片分配装置包括:
设置模块100,用于接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
本实施例中,分布式作业分片分配装置应用于集群域,该聚群域内各个服务器根据分配到的资源执行相应的任务。在同一集群域内可包括多个服务器,每个服务器可以执行不同的分布式作业分片。
为了能够获取聚群域内各个服务器的运行情况,首先设置模块100需要为各个服务器设置负载值,该负载值用于指示服务器执行任务的多少,负载值越大,表示服务器执行任务的越多;负载值越小,表示服务器执行任务的越少。
用户可在指定的用户设置界面(即Saturn UI界面)内,根据实际需要为集群域内的各个服务器设定所需的负载值,以生成设置指令,设置模块100在接收到设置指令后,设定各个服务器的负载值。在设定服务器的负载值后,该服务器上执行的每个作业分片对应的负载值均相同。例如,当某个服务器执行3个作业分片时,若该服务器设定的负载值为20,则每个作业分片的负载值均是20。
侦测模块200,用于侦测所述集群域内的服务器是否存在扩容或减容;
本实施例中,扩容是指集群域内增加服务器,减容是指损坏或减少服务器,使得服务器无法执行作业分片。分布式作业分片分配装置调用侦测模块200实时或间隔预设时间侦测集群域内的服务器是否存在扩容或减容,当集群域内的服务器存在扩容或减容,需要摘掉需要重新分配的作业分片,对该作业分片进行重新分配。
扩容分配模块300,用于当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;
当集群域内的服务器存在扩容时,扩容分配模块300获取集群域内服务器的负载值作为第一负载值,当集群域内包括一个服务器时,得到的第一负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第一负载值包括各个服务器对应的负载值。
得到第一负载值后,扩容分配模块300将按照自定义规则获取服务器上指定负载的第一作业分片。当集群域内包括一个服务器时,获取该服务器指定负载的第一作业分片,当集群域内包括多个服务器时,分别获取各个服务器上指定负载的第一作业分片。将得到的第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该第一作业分片,实现了为集群域内的其他服务器分担任务。
该自定义规则可根据具体情况而灵活设置,例如,自定义规则可设置为根据各个服务器的负载值大小,从负载值较大的服务器上获取较多的负载,而负载值较小的服务器上获取较少的负载,分配至扩容服务器上;或者,当存在n-1个服务器时,从各个服务器上获取1/n的负载分配至扩容服务器上,使得各个服务器上的负载均衡。
减容分配模块400,用于当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
当集群域内的服务器存在减容时,减容分配模块400获取减容对应的减容服务器所包含的第二作业分片,该第二作业分片可包括至少一个作业分片,并获取集群域内非减容服务器的负载值作为第二负载值。当集群域内包括一个服务器时,得到的第二负载值为该服务器对应的负载值,当集群域内包括多个服务器时,得到的第二负载值包括各个服务器对应的负载值。
得到第二负载值后,减容分配模块400根据第二负载值按照指定规则将第二作业分片分配至非减容服务器上。该指定规则可根据具体情况而灵活设置,例如,指定规则可设置为将第二作业分片按照负载值从大到小,依次分配至第二负载值中负载值由小到大的各个服务器上,实现了为集群域内各个服务器上作业分片的均衡。
以下进行举例说明,在一实施例中,VLG域有2台服务器分别为node1和node2,node1和node2服务器设定的负载值分别为30和30,node1和node2服务器分别执行3个作业分片、3个作业分片。当集群域内增加了一台服务器node3时,从node1和node2服务器上获取负载值为30的1个作业分片,分配至node3服务器上,这样就实现了作业分片的均衡分配。
在另一实施例中,VLG域有3台服务器分别为node1、node2和node3,node1、node2和node3服务器设定的负载值分别为20、20和30,node1、node2和node3服务器分别执行2个作业分片、2个作业分片和1个作业分片。当集群域内损坏了一台服务器node1时,从node1服务器上获取负载值为20的2个作业分片,分别分配至node2和node3服务器上,这样就实现了作业分片的均衡分配。
本发明实施例通过为集群域内的各个服务器设定负载值,并当集群域内的服务器存在扩容时,根据获取服务器的第一负载值,按照自定义规则将指定负载的第一作业分片分配至扩容服务器上。或者,当集群域内的服务器存在减容时,根据获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值,将该第二作业分片按照指定规则分配至非减容服务器上。使得集群域内的各个服务器在执行任务的过程中,可根据设定负载值获知其他服务器的运行情况,对作业分片进行合理分配,提高了作业分片分配的均衡性。
进一步地,基于上述分布式作业分片分配装置第一实施例,提出了本发明分布式作业分片分配装置第二实施例,该实施例中上述扩容分配模块300还用于,获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,扩容分配模块300可通过获取集群域内非扩容服务器的个数n-1,根据个数n-1及第一负载值在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将该第一作业分片分配至扩容对应的扩容服务器上,以便扩容服务器执行该作业分片,其中n≥2。例如,假设每个服务器的负载值均为1,当集群域内有5个服务器时,增加了一个服务器后,可从5个服务器中分别获取1/6的负载分配至扩容服务器上,使得6个服务器上均有5/6的负载。
进一步地,扩容分配模块300还用于,获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
本实施例中,当集群域内的服务器存在扩容时,获取集群域内服务器的第一负载值,并得到服务器上指定负载的第一作业分片后,扩容分配模块300还可将集群域内所有非扩容服务器上总的第一作业分片,根据上述得到的第一负载值及集群域内非扩容服务器和扩容服务器的总数,对得到总的第一作业分片进行均分,将平均后的第一作业分片分配至各个非扩容服务器和扩容服务器上。例如,当集群域内有5个服务器时,增加了一个服务器后总共有6个服务器,可从原有的5个服务器中获取得到的总负载值为60,此时,可将为6个服务器中的每个服务器均分配的负载值为10。当前扩容服务器上作业分片的分配方式也可根据实际需要进行设置,并不限定本发明。
本实施例当集群域内的服务器存在扩容时,根据负载值为扩容服务器合理分配作业分片,不仅利用扩容服务器为集群域内的其他服务器分担任务,而且实现了集群域内各个服务器的作业分片分配均衡。
进一步地,基于上述分布式作业分片分配装置第一或第二实施例,提出了本发明分布式作业分片分配装置第三实施例,该实施例中上述减容分配模块400还用于,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
本实施例中,当集群域内的服务器存在减容时,在获取减容服务器所包含的第二作业分片及非减容服务器的第二负载值后,可设置待分配列表用于存储等待分配的作业分片,可将获取得到的第二作业分片按照负载值从大到小存储至待分配列表中。然后减容分配模块400将分配列表中按照负载值从大到小排序的第二作业分片,依次分配至负载值由小到大的各个服务器上。
进一步地,减容分配模块400还用于,获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
本实施例中,当待分配列表中的待分配的第二作业分片的个数,大于集群域内非减容服务器的个数时,减容分配模块400可循环按照第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上的顺序,将第二作业分片进行分配。如图2所示,在对第二作业分配进行分配之前,待分配列表中存在负载值分别为30、30、20、20、10、10的作业分片,而在集群域内包括负载值分别为20、20、30的node1服务器、node2服务器和node3服务器。如图3所示,在进行第一轮分配时,首先将负载值较大的作业分片,即负载值从大到小为30、30、20的作业分片,依次分配至负载值由小到大的node1服务器、node2服务器和node3服务器上。如图4所示,由于待分配列表中的作业分片还没有分配完,因此需要进行第二轮分配。而在第一轮分配结束后,node1服务器、node2服务器和node3服务器的负载值均为50,此时将待分配列表中的负载值从大到小为20、10、10的作业分片,依次分配至各个服务器上,从而完成了作业分片的分配。
本实施例当集群域内的服务器存在减容时,将减容服务器上的第二作业分片按照负载值从大到小依次分配至负载值由小到大的各个服务器上,提高了作业分片分配的均衡性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种分布式作业分片分配方法,其特征在于,所述分布式作业分片分配方法包括以下步骤:
接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
侦测所述集群域内的服务器是否存在扩容或减容;
当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;或者,
当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
2.如权利要求1所述的分布式作业分片分配方法,其特征在于,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:
获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
3.如权利要求1所述的分布式作业分片分配方法,其特征在于,所述根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上包括:
获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
4.如权利要求1-3任一项所述的分布式作业分片分配方法,其特征在于,所述根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上包括:
根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
5.如权利要求4所述的分布式作业分片分配方法,其特征在于,所述根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上包括:
获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;
当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
6.一种分布式作业分片分配装置,其特征在于,所述分布式作业分片分配装置包括:
设置模块,用于接收设置指令,根据所述设置指令为集群域内的各个服务器设定负载值;
侦测模块,用于侦测所述集群域内的服务器是否存在扩容或减容;
扩容分配模块,用于当所述集群域内的服务器存在扩容时,获取所述集群域内服务器的负载值作为第一负载值,根据所述第一负载值按照自定义规则获取所述服务器上指定负载的第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上;
减容分配模块,用于当所述集群域内的服务器存在减容时,获取减容对应的减容服务器所包含的第二作业分片,及获取所述集群域内非减容服务器的负载值作为第二负载值,根据所述第二负载值将所述第二作业分片按照指定规则分配至所述非减容服务器上。
7.如权利要求6所述的分布式作业分片分配装置,其特征在于,所述扩容分配模块还用于,获取所述集群域内非扩容服务器的个数n-1,根据所述个数n-1及所述第一负载值,在各个非扩容服务器上分别摘取1/n负载的作业分片组成第一作业分片,将所述第一作业分片分配至扩容对应的扩容服务器上,其中n≥2。
8.如权利要求6所述的分布式作业分片分配装置,其特征在于,扩容分配模块还用于,获取所述集群域内非扩容服务器和扩容服务器的总数,以及获取所述集群域内所有非扩容服务器上总的第一作业分片,根据所述第一负载值及所述总数对所述总的第一作业分片进行均分并分配至各个非扩容服务器和扩容服务器上。
9.如权利要求6-8任一项所述的分布式作业分片分配装置,其特征在于,所述减容分配模块还用于,根据所述第二负载值将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个非减容服务器上。
10.如权利要求9所述的分布式作业分片分配装置,其特征在于,所述减容分配模块还用于,获取所述第二作业分片的个数及所述集群域内非减容服务器的个数;当所述第二作业分片的个数大于所述非减容服务器的个数时,循环执行将各个非减容服务器根据负载值由小到大进行排序,将所述第二作业分片按照负载值从大到小,依次分配至负载值由小到大的各个服务器上,直至所述第二作业分片分配完成。
CN201610643130.6A 2016-08-08 2016-08-08 分布式作业分片分配方法和装置 Active CN106254470B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610643130.6A CN106254470B (zh) 2016-08-08 2016-08-08 分布式作业分片分配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610643130.6A CN106254470B (zh) 2016-08-08 2016-08-08 分布式作业分片分配方法和装置

Publications (2)

Publication Number Publication Date
CN106254470A true CN106254470A (zh) 2016-12-21
CN106254470B CN106254470B (zh) 2019-06-14

Family

ID=58078434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610643130.6A Active CN106254470B (zh) 2016-08-08 2016-08-08 分布式作业分片分配方法和装置

Country Status (1)

Country Link
CN (1) CN106254470B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107508901A (zh) * 2017-09-04 2017-12-22 北京京东尚科信息技术有限公司 分布式数据处理方法、装置、服务器和系统
CN110019125A (zh) * 2017-11-27 2019-07-16 北京京东尚科信息技术有限公司 数据库管理的方法和装置
WO2020134786A1 (zh) * 2018-12-26 2020-07-02 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
CN115633041A (zh) * 2022-10-31 2023-01-20 中科星图数字地球合肥有限公司 多集群的管理方法、装置、电子设备和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882900A (zh) * 2011-07-11 2013-01-16 阿里巴巴集团控股有限公司 大规模服务器集群应用部署方法和大规模服务器集群
CN103810265A (zh) * 2014-01-27 2014-05-21 南京邮电大学 基于WiMAX本地路由下的数据库优化方法
CN103973583A (zh) * 2013-01-28 2014-08-06 中兴通讯股份有限公司 分布式文件系统优化负载均衡的方法及系统
CN105024842A (zh) * 2014-04-25 2015-11-04 深圳市腾讯计算机系统有限公司 服务器的扩容方法及装置
CN105162859A (zh) * 2015-08-20 2015-12-16 湖南亿谷科技发展股份有限公司 服务器动态扩容系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882900A (zh) * 2011-07-11 2013-01-16 阿里巴巴集团控股有限公司 大规模服务器集群应用部署方法和大规模服务器集群
CN103973583A (zh) * 2013-01-28 2014-08-06 中兴通讯股份有限公司 分布式文件系统优化负载均衡的方法及系统
CN103810265A (zh) * 2014-01-27 2014-05-21 南京邮电大学 基于WiMAX本地路由下的数据库优化方法
CN105024842A (zh) * 2014-04-25 2015-11-04 深圳市腾讯计算机系统有限公司 服务器的扩容方法及装置
CN105162859A (zh) * 2015-08-20 2015-12-16 湖南亿谷科技发展股份有限公司 服务器动态扩容系统及方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107508901A (zh) * 2017-09-04 2017-12-22 北京京东尚科信息技术有限公司 分布式数据处理方法、装置、服务器和系统
CN107508901B (zh) * 2017-09-04 2020-12-22 北京京东尚科信息技术有限公司 分布式数据处理方法、装置、服务器和系统
CN110019125A (zh) * 2017-11-27 2019-07-16 北京京东尚科信息技术有限公司 数据库管理的方法和装置
CN110019125B (zh) * 2017-11-27 2021-12-14 北京京东尚科信息技术有限公司 数据库管理的方法和装置
WO2020134786A1 (zh) * 2018-12-26 2020-07-02 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
CN111371583A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
CN115633041A (zh) * 2022-10-31 2023-01-20 中科星图数字地球合肥有限公司 多集群的管理方法、装置、电子设备和可读存储介质
CN115633041B (zh) * 2022-10-31 2024-06-04 中科星图数字地球合肥有限公司 多集群的管理方法、装置、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN106254470B (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN106254470B (zh) 分布式作业分片分配方法和装置
CN102281329B (zh) 一种PaaS云平台的资源调度方法和系统
CN105335229B (zh) 一种业务资源的调度方法和装置
CN107958349B (zh) 任务分配方法、装置、计算机设备和存储介质
CN106712981B (zh) 一种节点变更通知方法及装置
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
CN108702316B (zh) 一种vnf的资源分配方法及装置
US9218210B2 (en) Distributed processing system
CN106339802A (zh) 任务分配的方法和装置、电子设备
CN106648900B (zh) 基于智能电视的超算方法及系统
CN105491150A (zh) 基于时间序列的负载均衡处理方法及系统
CN106557366B (zh) 任务分发方法、装置及系统
CN103051564A (zh) 资源动态调配的方法和装置
CN104699542A (zh) 任务处理方法及系统
CN105279017A (zh) 基于云测试平台的任务分配方法、装置及系统
Rupprecht et al. SquirrelJoin: Network-aware distributed join processing with lazy partitioning
CN107196781B (zh) 安全配置核查任务分配方法及装置
CN105893497A (zh) 一种任务处理方法和装置
US20150365474A1 (en) Computer-readable recording medium, task assignment method, and task assignment apparatus
Yeboah et al. An integration of round robin with shortest job first algorithm for cloud computing environment
US20140047454A1 (en) Load balancing in an sap system
JP2013196695A (ja) 仮想マシン割り当てシステム及びその方法
CN110928687B (zh) Cpu资源分配方法及测试设备
CN107239328B (zh) 任务分配方法及装置
CN110377430B (zh) 数据迁移方法、设备、存储介质及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20171218

Address after: 510000 Guangzhou City, Guangzhou, Guangdong, Fangcun Avenue, one of the 314 self compiled

Applicant after: Guangzhou Pinwei Software Co., Ltd.

Address before: Liwan District Fangcun Huahai street Guangzhou city Guangdong province 510000 No. 20 self 1-5 building (only for office use)

Applicant before: Guangzhou VIPSHOP Information and Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220111

Address after: 510000 Room 601, 128 Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province (office only)

Patentee after: Vipshop (Guangzhou) Software Co.,Ltd.

Address before: 510000 No. 314, Fangcun Avenue, Liwan District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU PINWEI SOFTWARE Co.,Ltd.