亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分布式作業(yè)分片分配方法和裝置與流程

文檔序號(hào):12478342閱讀:398來源:國知局
分布式作業(yè)分片分配方法和裝置與流程

本發(fā)明涉及服務(wù)器資源分配技術(shù)領(lǐng)域,尤其涉及一種分布式作業(yè)分片分配方法和裝置。



背景技術(shù):

目前,在執(zhí)行任務(wù)的過程中,一般會(huì)存在同一集群域內(nèi)的服務(wù)器上作業(yè)分片分配不均勻的情況。例如,VLG域有3臺(tái)服務(wù)器分別為node1、node2和node3,有3個(gè)作業(yè)分別為job1、job2、job3,其中,job1有1個(gè)分片,job2有2個(gè)分片,job3有2個(gè)分片。node1、node2、node3分別可以執(zhí)行job1、job2、job3,依次啟動(dòng)node1、node2、node3時(shí),在node1上面跑3個(gè)作業(yè)分片,在node1上面跑2個(gè)作業(yè)分片,在node3上面跑了0個(gè)作業(yè)分片,從而導(dǎo)致作業(yè)分片分配不均衡,即資源利用不均勻。另外,由于各個(gè)服務(wù)器之間并不知道其他服務(wù)器存在多少作業(yè)分片,因此當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容或減容時(shí),服務(wù)器上的作業(yè)分片是任意分配的,使得各個(gè)服務(wù)器上作業(yè)分片存在分配不均衡。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的主要目的在于提供一種分布式作業(yè)分片分配方法和裝置,旨在提高作業(yè)分片分配的均衡性。

為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種分布式作業(yè)分片分配方法,包括:

接收設(shè)置指令,根據(jù)所述設(shè)置指令為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值;

偵測(cè)所述集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容;

當(dāng)所述集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取所述集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上;或者,

當(dāng)所述集群域內(nèi)的服務(wù)器存在減容時(shí),獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,及獲取所述集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值,根據(jù)所述第二負(fù)載值將所述第二作業(yè)分片按照指定規(guī)則分配至所述非減容服務(wù)器上。

可選地,所述根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上包括:

獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)所述個(gè)數(shù)n-1及所述第一負(fù)載值,在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,其中n≥2。

可選地,所述根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上包括:

獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),以及獲取所述集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)所述第一負(fù)載值及所述總數(shù)對(duì)所述總的第一作業(yè)分片進(jìn)行均分并分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。

可選地,所述根據(jù)所述第二負(fù)載值將所述第二作業(yè)分片按照指定規(guī)則分配至所述非減容服務(wù)器上包括:

根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上。

可選地,所述根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上包括:

獲取所述第二作業(yè)分片的個(gè)數(shù)及所述集群域內(nèi)非減容服務(wù)器的個(gè)數(shù);

當(dāng)所述第二作業(yè)分片的個(gè)數(shù)大于所述非減容服務(wù)器的個(gè)數(shù)時(shí),循環(huán)執(zhí)行將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,直至所述第二作業(yè)分片分配完成。

此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種分布式作業(yè)分片分配裝置,包括:

設(shè)置模塊,用于接收設(shè)置指令,根據(jù)所述設(shè)置指令為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值;

偵測(cè)模塊,用于偵測(cè)所述集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容;

擴(kuò)容分配模塊,用于當(dāng)所述集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取所述集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上;

減容分配模塊,用于當(dāng)所述集群域內(nèi)的服務(wù)器存在減容時(shí),獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,及獲取所述集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值,根據(jù)所述第二負(fù)載值將所述第二作業(yè)分片按照指定規(guī)則分配至所述非減容服務(wù)器上。

可選地,所述擴(kuò)容分配模塊還用于,獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)所述個(gè)數(shù)n-1及所述第一負(fù)載值,在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,其中n≥2。

可選地,擴(kuò)容分配模塊還用于,獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),以及獲取所述集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)所述第一負(fù)載值及所述總數(shù)對(duì)所述總的第一作業(yè)分片進(jìn)行均分并分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。

可選地,所述減容分配模塊還用于,根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上。

可選地,所述減容分配模塊還用于,獲取所述第二作業(yè)分片的個(gè)數(shù)及所述集群域內(nèi)非減容服務(wù)器的個(gè)數(shù);當(dāng)所述第二作業(yè)分片的個(gè)數(shù)大于所述非減容服務(wù)器的個(gè)數(shù)時(shí),循環(huán)執(zhí)行將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,直至所述第二作業(yè)分片分配完成。

本發(fā)明實(shí)施例提供的分布式作業(yè)分片分配方法和裝置,通過為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值,并當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),根據(jù)獲取服務(wù)器的第一負(fù)載值,按照自定義規(guī)則將指定負(fù)載的第一作業(yè)分片分配至擴(kuò)容服務(wù)器上?;蛘?,當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),根據(jù)獲取減容服務(wù)器所包含的第二作業(yè)分片及非減容服務(wù)器的第二負(fù)載值,將該第二作業(yè)分片按照指定規(guī)則分配至非減容服務(wù)器上。使得集群域內(nèi)的各個(gè)服務(wù)器在執(zhí)行任務(wù)的過程中,可根據(jù)設(shè)定負(fù)載值獲知其他服務(wù)器的運(yùn)行情況,對(duì)作業(yè)分片進(jìn)行合理分配,提高了作業(yè)分片分配的均衡性。

附圖說明

圖1為本發(fā)明分布式作業(yè)分片分配方法一實(shí)施例的流程示意圖;

圖2為本發(fā)明分配前待分配列表內(nèi)作業(yè)分片與各服務(wù)器包含的負(fù)載值示意圖;

圖3為本發(fā)明第一輪分配后待分配列表內(nèi)作業(yè)分片與各服務(wù)器包含的負(fù)載值示意圖;

圖4為本發(fā)明第二輪分配后待分配列表內(nèi)作業(yè)分片與各服務(wù)器包含的負(fù)載值示意圖;

圖5為本發(fā)明分布式作業(yè)分片分配裝置一實(shí)施例的功能模塊示意圖。

本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。

具體實(shí)施方式

應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

如圖1所示,示出了本發(fā)明一種分布式作業(yè)分片分配方法第一實(shí)施例。該實(shí)施例的分布式作業(yè)分片分配方法包括:

步驟S10、接收設(shè)置指令,根據(jù)所述設(shè)置指令為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值;

本實(shí)施例中,分布式作業(yè)分片分配方法應(yīng)用于集群域,該聚群域內(nèi)各個(gè)服務(wù)器根據(jù)分配到的資源執(zhí)行相應(yīng)的任務(wù)。聚群域包括分布式作業(yè)分片分配裝置,在同一集群域內(nèi)可包括多個(gè)服務(wù)器,每個(gè)服務(wù)器可以執(zhí)行不同的分布式作業(yè)分片。

為了能夠獲取聚群域內(nèi)各個(gè)服務(wù)器的運(yùn)行情況,首先需要為各個(gè)服務(wù)器設(shè)置負(fù)載值,該負(fù)載值用于指示服務(wù)器執(zhí)行任務(wù)的多少,負(fù)載值越大,表示服務(wù)器執(zhí)行任務(wù)的越多;負(fù)載值越小,表示服務(wù)器執(zhí)行任務(wù)的越少。

用戶可在指定的用戶設(shè)置界面(即Saturn UI界面)內(nèi),根據(jù)實(shí)際需要為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定所需的負(fù)載值,在設(shè)定服務(wù)器的負(fù)載值后,該服務(wù)器上執(zhí)行的每個(gè)作業(yè)分片對(duì)應(yīng)的負(fù)載值均相同。例如,當(dāng)某個(gè)服務(wù)器執(zhí)行3個(gè)作業(yè)分片時(shí),若該服務(wù)器設(shè)定的負(fù)載值為20,則每個(gè)作業(yè)分片的負(fù)載值均是20。

步驟S20、偵測(cè)所述集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容;

本實(shí)施例中,擴(kuò)容是指集群域內(nèi)增加服務(wù)器,減容是指損壞或減少服務(wù)器,使得服務(wù)器無法執(zhí)行作業(yè)分片。分布式作業(yè)分片分配裝置實(shí)時(shí)或間隔預(yù)設(shè)時(shí)間偵測(cè)集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容或減容,需要摘掉需要重新分配的作業(yè)分片,對(duì)該作業(yè)分片進(jìn)行重新分配。

步驟S30、當(dāng)所述集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取所述集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上;

當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),得到的第一負(fù)載值為該服務(wù)器對(duì)應(yīng)的負(fù)載值,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),得到的第一負(fù)載值包括各個(gè)服務(wù)器對(duì)應(yīng)的負(fù)載值。

得到第一負(fù)載值后,將按照自定義規(guī)則獲取服務(wù)器上指定負(fù)載的第一作業(yè)分片。當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),獲取該服務(wù)器指定負(fù)載的第一作業(yè)分片,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),分別獲取各個(gè)服務(wù)器上指定負(fù)載的第一作業(yè)分片。將得到的第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,以便擴(kuò)容服務(wù)器執(zhí)行該第一作業(yè)分片,實(shí)現(xiàn)了為集群域內(nèi)的其他服務(wù)器分擔(dān)任務(wù)。

該自定義規(guī)則可根據(jù)具體情況而靈活設(shè)置,例如,自定義規(guī)則可設(shè)置為根據(jù)各個(gè)服務(wù)器的負(fù)載值大小,從負(fù)載值較大的服務(wù)器上獲取較多的負(fù)載,而負(fù)載值較小的服務(wù)器上獲取較少的負(fù)載,分配至擴(kuò)容服務(wù)器上;或者,當(dāng)存在n-1個(gè)服務(wù)器時(shí),從各個(gè)服務(wù)器上獲取1/n的負(fù)載分配至擴(kuò)容服務(wù)器上,使得各個(gè)服務(wù)器上的負(fù)載均衡。

步驟S40、當(dāng)所述集群域內(nèi)的服務(wù)器存在減容時(shí),獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,及獲取所述集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值,根據(jù)所述第二負(fù)載值將所述第二作業(yè)分片按照指定規(guī)則分配至所述非減容服務(wù)器上。

當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,該第二作業(yè)分片可包括至少一個(gè)作業(yè)分片,并獲取集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值。當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),得到的第二負(fù)載值為該服務(wù)器對(duì)應(yīng)的負(fù)載值,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),得到的第二負(fù)載值包括各個(gè)服務(wù)器對(duì)應(yīng)的負(fù)載值。

得到第二負(fù)載值后,根據(jù)第二負(fù)載值按照指定規(guī)則將第二作業(yè)分片分配至非減容服務(wù)器上。該指定規(guī)則可根據(jù)具體情況而靈活設(shè)置,例如,指定規(guī)則可設(shè)置為將第二作業(yè)分片按照負(fù)載值從大到小,依次分配至第二負(fù)載值中負(fù)載值由小到大的各個(gè)服務(wù)器上,實(shí)現(xiàn)了為集群域內(nèi)各個(gè)服務(wù)器上作業(yè)分片的均衡。

以下進(jìn)行舉例說明,在一實(shí)施例中,VLG域有2臺(tái)服務(wù)器分別為node1和node2,node1和node2服務(wù)器設(shè)定的負(fù)載值分別為30和30,node1和node2服務(wù)器分別執(zhí)行3個(gè)作業(yè)分片、3個(gè)作業(yè)分片。當(dāng)集群域內(nèi)增加了一臺(tái)服務(wù)器node3時(shí),從node1和node2服務(wù)器上獲取負(fù)載值為30的1個(gè)作業(yè)分片,分配至node3服務(wù)器上,這樣就實(shí)現(xiàn)了作業(yè)分片的均衡分配。

在另一實(shí)施例中,VLG域有3臺(tái)服務(wù)器分別為node1、node2和node3,node1、node2和node3服務(wù)器設(shè)定的負(fù)載值分別為20、20和30,node1、node2和node3服務(wù)器分別執(zhí)行2個(gè)作業(yè)分片、2個(gè)作業(yè)分片和1個(gè)作業(yè)分片。當(dāng)集群域內(nèi)損壞了一臺(tái)服務(wù)器node1時(shí),從node1服務(wù)器上獲取負(fù)載值為20的2個(gè)作業(yè)分片,分別分配至node2和node3服務(wù)器上,這樣就實(shí)現(xiàn)了作業(yè)分片的均衡分配。

本發(fā)明實(shí)施例通過為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值,并當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),根據(jù)獲取服務(wù)器的第一負(fù)載值,按照自定義規(guī)則將指定負(fù)載的第一作業(yè)分片分配至擴(kuò)容服務(wù)器上?;蛘?,當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),根據(jù)獲取減容服務(wù)器所包含的第二作業(yè)分片及非減容服務(wù)器的第二負(fù)載值,將該第二作業(yè)分片按照指定規(guī)則分配至非減容服務(wù)器上。使得集群域內(nèi)的各個(gè)服務(wù)器在執(zhí)行任務(wù)的過程中,可根據(jù)設(shè)定負(fù)載值獲知其他服務(wù)器的運(yùn)行情況,對(duì)作業(yè)分片進(jìn)行合理分配,提高了作業(yè)分片分配的均衡性。

進(jìn)一步地,基于上述分布式作業(yè)分片分配方法第一實(shí)施例,提出了本發(fā)明分布式作業(yè)分片分配方法第二實(shí)施例,該實(shí)施例中上述步驟S30包括:獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)所述個(gè)數(shù)n-1及所述第一負(fù)載值,在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,其中n≥2。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取集群域內(nèi)服務(wù)器的第一負(fù)載值,并得到服務(wù)器上指定負(fù)載的第一作業(yè)分片后,可通過獲取集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)個(gè)數(shù)n-1及第一負(fù)載值在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將該第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,以便擴(kuò)容服務(wù)器執(zhí)行該作業(yè)分片,其中n≥2。例如,假設(shè)每個(gè)服務(wù)器的負(fù)載值均為1,當(dāng)集群域內(nèi)有5個(gè)服務(wù)器時(shí),增加了一個(gè)服務(wù)器后,可從5個(gè)服務(wù)器中分別獲取1/6的負(fù)載分配至擴(kuò)容服務(wù)器上,使得6個(gè)服務(wù)器上均有5/6的負(fù)載。

進(jìn)一步地,上述步驟S30還包括:獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),以及獲取所述集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)所述第一負(fù)載值及所述總數(shù)對(duì)所述總的第一作業(yè)分片進(jìn)行均分并分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取集群域內(nèi)服務(wù)器的第一負(fù)載值,并得到服務(wù)器上指定負(fù)載的第一作業(yè)分片后,還可將集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)上述得到的第一負(fù)載值及集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),對(duì)得到總的第一作業(yè)分片進(jìn)行均分,將平均后的第一作業(yè)分片分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。例如,當(dāng)集群域內(nèi)有5個(gè)服務(wù)器時(shí),增加了一個(gè)服務(wù)器后總共有6個(gè)服務(wù)器,可從原有的5個(gè)服務(wù)器中獲取得到的總負(fù)載值為60,此時(shí),可將為6個(gè)服務(wù)器中的每個(gè)服務(wù)器均分配的負(fù)載值為10。當(dāng)前擴(kuò)容服務(wù)器上作業(yè)分片的分配方式也可根據(jù)實(shí)際需要進(jìn)行設(shè)置,并不限定本發(fā)明。

本實(shí)施例當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),根據(jù)負(fù)載值為擴(kuò)容服務(wù)器合理分配作業(yè)分片,不僅利用擴(kuò)容服務(wù)器為集群域內(nèi)的其他服務(wù)器分擔(dān)任務(wù),而且實(shí)現(xiàn)了集群域內(nèi)各個(gè)服務(wù)器的作業(yè)分片分配均衡。

進(jìn)一步地,基于上述分布式作業(yè)分片分配方法第一或第二實(shí)施例,提出了本發(fā)明分布式作業(yè)分片分配方法第三實(shí)施例,該實(shí)施例中上述步驟S40包括:根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),在獲取減容服務(wù)器所包含的第二作業(yè)分片及非減容服務(wù)器的第二負(fù)載值后,可設(shè)置待分配列表用于存儲(chǔ)等待分配的作業(yè)分片,可將獲取得到的第二作業(yè)分片按照負(fù)載值從大到小存儲(chǔ)至待分配列表中。然后將分配列表中按照負(fù)載值從大到小排序的第二作業(yè)分片,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上。

進(jìn)一步地,根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上的步驟包括:獲取所述第二作業(yè)分片的個(gè)數(shù)及所述集群域內(nèi)非減容服務(wù)器的個(gè)數(shù);當(dāng)所述第二作業(yè)分片的個(gè)數(shù)大于所述非減容服務(wù)器的個(gè)數(shù)時(shí),循環(huán)執(zhí)行將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,直至所述第二作業(yè)分片分配完成。

本實(shí)施例中,當(dāng)待分配列表中的待分配的第二作業(yè)分片的個(gè)數(shù),大于集群域內(nèi)非減容服務(wù)器的個(gè)數(shù)時(shí),可循環(huán)按照第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上的順序,將第二作業(yè)分片進(jìn)行分配。如圖2所示,在對(duì)第二作業(yè)分配進(jìn)行分配之前,待分配列表中存在負(fù)載值分別為30、30、20、20、10、10的作業(yè)分片,而在集群域內(nèi)包括負(fù)載值分別為20、20、30的node1服務(wù)器、node2服務(wù)器和node3服務(wù)器。如圖3所示,在進(jìn)行第一輪分配時(shí),首先將負(fù)載值較大的作業(yè)分片,即負(fù)載值從大到小為30、30、20的作業(yè)分片,依次分配至負(fù)載值由小到大的node1服務(wù)器、node2服務(wù)器和node3服務(wù)器上。如圖4所示,由于待分配列表中的作業(yè)分片還沒有分配完,因此需要進(jìn)行第二輪分配。而在第一輪分配結(jié)束后,node1服務(wù)器、node2服務(wù)器和node3服務(wù)器的負(fù)載值均為50,此時(shí)將待分配列表中的負(fù)載值從大到小為20、10、10的作業(yè)分片,依次分配至各個(gè)服務(wù)器上,從而完成了作業(yè)分片的分配。

本實(shí)施例當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),將減容服務(wù)器上的第二作業(yè)分片按照負(fù)載值從大到小依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,提高了作業(yè)分片分配的均衡性。

對(duì)應(yīng)地,如圖5所示,提出本發(fā)明一種分布式作業(yè)分片分配裝置第一實(shí)施例。該實(shí)施例的分布式作業(yè)分片分配裝置包括:

設(shè)置模塊100,用于接收設(shè)置指令,根據(jù)所述設(shè)置指令為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值;

本實(shí)施例中,分布式作業(yè)分片分配裝置應(yīng)用于集群域,該聚群域內(nèi)各個(gè)服務(wù)器根據(jù)分配到的資源執(zhí)行相應(yīng)的任務(wù)。在同一集群域內(nèi)可包括多個(gè)服務(wù)器,每個(gè)服務(wù)器可以執(zhí)行不同的分布式作業(yè)分片。

為了能夠獲取聚群域內(nèi)各個(gè)服務(wù)器的運(yùn)行情況,首先設(shè)置模塊100需要為各個(gè)服務(wù)器設(shè)置負(fù)載值,該負(fù)載值用于指示服務(wù)器執(zhí)行任務(wù)的多少,負(fù)載值越大,表示服務(wù)器執(zhí)行任務(wù)的越多;負(fù)載值越小,表示服務(wù)器執(zhí)行任務(wù)的越少。

用戶可在指定的用戶設(shè)置界面(即Saturn UI界面)內(nèi),根據(jù)實(shí)際需要為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定所需的負(fù)載值,以生成設(shè)置指令,設(shè)置模塊100在接收到設(shè)置指令后,設(shè)定各個(gè)服務(wù)器的負(fù)載值。在設(shè)定服務(wù)器的負(fù)載值后,該服務(wù)器上執(zhí)行的每個(gè)作業(yè)分片對(duì)應(yīng)的負(fù)載值均相同。例如,當(dāng)某個(gè)服務(wù)器執(zhí)行3個(gè)作業(yè)分片時(shí),若該服務(wù)器設(shè)定的負(fù)載值為20,則每個(gè)作業(yè)分片的負(fù)載值均是20。

偵測(cè)模塊200,用于偵測(cè)所述集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容;

本實(shí)施例中,擴(kuò)容是指集群域內(nèi)增加服務(wù)器,減容是指損壞或減少服務(wù)器,使得服務(wù)器無法執(zhí)行作業(yè)分片。分布式作業(yè)分片分配裝置調(diào)用偵測(cè)模塊200實(shí)時(shí)或間隔預(yù)設(shè)時(shí)間偵測(cè)集群域內(nèi)的服務(wù)器是否存在擴(kuò)容或減容,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容或減容,需要摘掉需要重新分配的作業(yè)分片,對(duì)該作業(yè)分片進(jìn)行重新分配。

擴(kuò)容分配模塊300,用于當(dāng)所述集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取所述集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,根據(jù)所述第一負(fù)載值按照自定義規(guī)則獲取所述服務(wù)器上指定負(fù)載的第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上;

當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),擴(kuò)容分配模塊300獲取集群域內(nèi)服務(wù)器的負(fù)載值作為第一負(fù)載值,當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),得到的第一負(fù)載值為該服務(wù)器對(duì)應(yīng)的負(fù)載值,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),得到的第一負(fù)載值包括各個(gè)服務(wù)器對(duì)應(yīng)的負(fù)載值。

得到第一負(fù)載值后,擴(kuò)容分配模塊300將按照自定義規(guī)則獲取服務(wù)器上指定負(fù)載的第一作業(yè)分片。當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),獲取該服務(wù)器指定負(fù)載的第一作業(yè)分片,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),分別獲取各個(gè)服務(wù)器上指定負(fù)載的第一作業(yè)分片。將得到的第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,以便擴(kuò)容服務(wù)器執(zhí)行該第一作業(yè)分片,實(shí)現(xiàn)了為集群域內(nèi)的其他服務(wù)器分擔(dān)任務(wù)。

該自定義規(guī)則可根據(jù)具體情況而靈活設(shè)置,例如,自定義規(guī)則可設(shè)置為根據(jù)各個(gè)服務(wù)器的負(fù)載值大小,從負(fù)載值較大的服務(wù)器上獲取較多的負(fù)載,而負(fù)載值較小的服務(wù)器上獲取較少的負(fù)載,分配至擴(kuò)容服務(wù)器上;或者,當(dāng)存在n-1個(gè)服務(wù)器時(shí),從各個(gè)服務(wù)器上獲取1/n的負(fù)載分配至擴(kuò)容服務(wù)器上,使得各個(gè)服務(wù)器上的負(fù)載均衡。

減容分配模塊400,用于當(dāng)所述集群域內(nèi)的服務(wù)器存在減容時(shí),獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,及獲取所述集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值,根據(jù)所述第二負(fù)載值將所述第二作業(yè)分片按照指定規(guī)則分配至所述非減容服務(wù)器上。

當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),減容分配模塊400獲取減容對(duì)應(yīng)的減容服務(wù)器所包含的第二作業(yè)分片,該第二作業(yè)分片可包括至少一個(gè)作業(yè)分片,并獲取集群域內(nèi)非減容服務(wù)器的負(fù)載值作為第二負(fù)載值。當(dāng)集群域內(nèi)包括一個(gè)服務(wù)器時(shí),得到的第二負(fù)載值為該服務(wù)器對(duì)應(yīng)的負(fù)載值,當(dāng)集群域內(nèi)包括多個(gè)服務(wù)器時(shí),得到的第二負(fù)載值包括各個(gè)服務(wù)器對(duì)應(yīng)的負(fù)載值。

得到第二負(fù)載值后,減容分配模塊400根據(jù)第二負(fù)載值按照指定規(guī)則將第二作業(yè)分片分配至非減容服務(wù)器上。該指定規(guī)則可根據(jù)具體情況而靈活設(shè)置,例如,指定規(guī)則可設(shè)置為將第二作業(yè)分片按照負(fù)載值從大到小,依次分配至第二負(fù)載值中負(fù)載值由小到大的各個(gè)服務(wù)器上,實(shí)現(xiàn)了為集群域內(nèi)各個(gè)服務(wù)器上作業(yè)分片的均衡。

以下進(jìn)行舉例說明,在一實(shí)施例中,VLG域有2臺(tái)服務(wù)器分別為node1和node2,node1和node2服務(wù)器設(shè)定的負(fù)載值分別為30和30,node1和node2服務(wù)器分別執(zhí)行3個(gè)作業(yè)分片、3個(gè)作業(yè)分片。當(dāng)集群域內(nèi)增加了一臺(tái)服務(wù)器node3時(shí),從node1和node2服務(wù)器上獲取負(fù)載值為30的1個(gè)作業(yè)分片,分配至node3服務(wù)器上,這樣就實(shí)現(xiàn)了作業(yè)分片的均衡分配。

在另一實(shí)施例中,VLG域有3臺(tái)服務(wù)器分別為node1、node2和node3,node1、node2和node3服務(wù)器設(shè)定的負(fù)載值分別為20、20和30,node1、node2和node3服務(wù)器分別執(zhí)行2個(gè)作業(yè)分片、2個(gè)作業(yè)分片和1個(gè)作業(yè)分片。當(dāng)集群域內(nèi)損壞了一臺(tái)服務(wù)器node1時(shí),從node1服務(wù)器上獲取負(fù)載值為20的2個(gè)作業(yè)分片,分別分配至node2和node3服務(wù)器上,這樣就實(shí)現(xiàn)了作業(yè)分片的均衡分配。

本發(fā)明實(shí)施例通過為集群域內(nèi)的各個(gè)服務(wù)器設(shè)定負(fù)載值,并當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),根據(jù)獲取服務(wù)器的第一負(fù)載值,按照自定義規(guī)則將指定負(fù)載的第一作業(yè)分片分配至擴(kuò)容服務(wù)器上?;蛘?,當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),根據(jù)獲取減容服務(wù)器所包含的第二作業(yè)分片及非減容服務(wù)器的第二負(fù)載值,將該第二作業(yè)分片按照指定規(guī)則分配至非減容服務(wù)器上。使得集群域內(nèi)的各個(gè)服務(wù)器在執(zhí)行任務(wù)的過程中,可根據(jù)設(shè)定負(fù)載值獲知其他服務(wù)器的運(yùn)行情況,對(duì)作業(yè)分片進(jìn)行合理分配,提高了作業(yè)分片分配的均衡性。

進(jìn)一步地,基于上述分布式作業(yè)分片分配裝置第一實(shí)施例,提出了本發(fā)明分布式作業(yè)分片分配裝置第二實(shí)施例,該實(shí)施例中上述擴(kuò)容分配模塊300還用于,獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)所述個(gè)數(shù)n-1及所述第一負(fù)載值,在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將所述第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,其中n≥2。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取集群域內(nèi)服務(wù)器的第一負(fù)載值,并得到服務(wù)器上指定負(fù)載的第一作業(yè)分片后,擴(kuò)容分配模塊300可通過獲取集群域內(nèi)非擴(kuò)容服務(wù)器的個(gè)數(shù)n-1,根據(jù)個(gè)數(shù)n-1及第一負(fù)載值在各個(gè)非擴(kuò)容服務(wù)器上分別摘取1/n負(fù)載的作業(yè)分片組成第一作業(yè)分片,將該第一作業(yè)分片分配至擴(kuò)容對(duì)應(yīng)的擴(kuò)容服務(wù)器上,以便擴(kuò)容服務(wù)器執(zhí)行該作業(yè)分片,其中n≥2。例如,假設(shè)每個(gè)服務(wù)器的負(fù)載值均為1,當(dāng)集群域內(nèi)有5個(gè)服務(wù)器時(shí),增加了一個(gè)服務(wù)器后,可從5個(gè)服務(wù)器中分別獲取1/6的負(fù)載分配至擴(kuò)容服務(wù)器上,使得6個(gè)服務(wù)器上均有5/6的負(fù)載。

進(jìn)一步地,擴(kuò)容分配模塊300還用于,獲取所述集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),以及獲取所述集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)所述第一負(fù)載值及所述總數(shù)對(duì)所述總的第一作業(yè)分片進(jìn)行均分并分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),獲取集群域內(nèi)服務(wù)器的第一負(fù)載值,并得到服務(wù)器上指定負(fù)載的第一作業(yè)分片后,擴(kuò)容分配模塊300還可將集群域內(nèi)所有非擴(kuò)容服務(wù)器上總的第一作業(yè)分片,根據(jù)上述得到的第一負(fù)載值及集群域內(nèi)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器的總數(shù),對(duì)得到總的第一作業(yè)分片進(jìn)行均分,將平均后的第一作業(yè)分片分配至各個(gè)非擴(kuò)容服務(wù)器和擴(kuò)容服務(wù)器上。例如,當(dāng)集群域內(nèi)有5個(gè)服務(wù)器時(shí),增加了一個(gè)服務(wù)器后總共有6個(gè)服務(wù)器,可從原有的5個(gè)服務(wù)器中獲取得到的總負(fù)載值為60,此時(shí),可將為6個(gè)服務(wù)器中的每個(gè)服務(wù)器均分配的負(fù)載值為10。當(dāng)前擴(kuò)容服務(wù)器上作業(yè)分片的分配方式也可根據(jù)實(shí)際需要進(jìn)行設(shè)置,并不限定本發(fā)明。

本實(shí)施例當(dāng)集群域內(nèi)的服務(wù)器存在擴(kuò)容時(shí),根據(jù)負(fù)載值為擴(kuò)容服務(wù)器合理分配作業(yè)分片,不僅利用擴(kuò)容服務(wù)器為集群域內(nèi)的其他服務(wù)器分擔(dān)任務(wù),而且實(shí)現(xiàn)了集群域內(nèi)各個(gè)服務(wù)器的作業(yè)分片分配均衡。

進(jìn)一步地,基于上述分布式作業(yè)分片分配裝置第一或第二實(shí)施例,提出了本發(fā)明分布式作業(yè)分片分配裝置第三實(shí)施例,該實(shí)施例中上述減容分配模塊400還用于,根據(jù)所述第二負(fù)載值將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)非減容服務(wù)器上。

本實(shí)施例中,當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),在獲取減容服務(wù)器所包含的第二作業(yè)分片及非減容服務(wù)器的第二負(fù)載值后,可設(shè)置待分配列表用于存儲(chǔ)等待分配的作業(yè)分片,可將獲取得到的第二作業(yè)分片按照負(fù)載值從大到小存儲(chǔ)至待分配列表中。然后減容分配模塊400將分配列表中按照負(fù)載值從大到小排序的第二作業(yè)分片,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上。

進(jìn)一步地,減容分配模塊400還用于,獲取所述第二作業(yè)分片的個(gè)數(shù)及所述集群域內(nèi)非減容服務(wù)器的個(gè)數(shù);當(dāng)所述第二作業(yè)分片的個(gè)數(shù)大于所述非減容服務(wù)器的個(gè)數(shù)時(shí),循環(huán)執(zhí)行將各個(gè)非減容服務(wù)器根據(jù)負(fù)載值由小到大進(jìn)行排序,將所述第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,直至所述第二作業(yè)分片分配完成。

本實(shí)施例中,當(dāng)待分配列表中的待分配的第二作業(yè)分片的個(gè)數(shù),大于集群域內(nèi)非減容服務(wù)器的個(gè)數(shù)時(shí),減容分配模塊400可循環(huán)按照第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上的順序,將第二作業(yè)分片進(jìn)行分配。如圖2所示,在對(duì)第二作業(yè)分配進(jìn)行分配之前,待分配列表中存在負(fù)載值分別為30、30、20、20、10、10的作業(yè)分片,而在集群域內(nèi)包括負(fù)載值分別為20、20、30的node1服務(wù)器、node2服務(wù)器和node3服務(wù)器。如圖3所示,在進(jìn)行第一輪分配時(shí),首先將負(fù)載值較大的作業(yè)分片,即負(fù)載值從大到小為30、30、20的作業(yè)分片,依次分配至負(fù)載值由小到大的node1服務(wù)器、node2服務(wù)器和node3服務(wù)器上。如圖4所示,由于待分配列表中的作業(yè)分片還沒有分配完,因此需要進(jìn)行第二輪分配。而在第一輪分配結(jié)束后,node1服務(wù)器、node2服務(wù)器和node3服務(wù)器的負(fù)載值均為50,此時(shí)將待分配列表中的負(fù)載值從大到小為20、10、10的作業(yè)分片,依次分配至各個(gè)服務(wù)器上,從而完成了作業(yè)分片的分配。

本實(shí)施例當(dāng)集群域內(nèi)的服務(wù)器存在減容時(shí),將減容服務(wù)器上的第二作業(yè)分片按照負(fù)載值從大到小依次分配至負(fù)載值由小到大的各個(gè)服務(wù)器上,提高了作業(yè)分片分配的均衡性。

以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1