国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

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

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



      背景技術(shù):

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      本實(shí)施例中,當(dāng)待分配列表中的待分配的第二作業(yè)分片的個數(shù),大于集群域內(nèi)非減容服務(wù)器的個數(shù)時,可循環(huán)按照第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個服務(wù)器上的順序,將第二作業(yè)分片進(jìn)行分配。如圖2所示,在對第二作業(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)行第一輪分配時,首先將負(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,此時將待分配列表中的負(fù)載值從大到小為20、10、10的作業(yè)分片,依次分配至各個服務(wù)器上,從而完成了作業(yè)分片的分配。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      本實(shí)施例中,當(dāng)待分配列表中的待分配的第二作業(yè)分片的個數(shù),大于集群域內(nèi)非減容服務(wù)器的個數(shù)時,減容分配模塊400可循環(huán)按照第二作業(yè)分片按照負(fù)載值從大到小,依次分配至負(fù)載值由小到大的各個服務(wù)器上的順序,將第二作業(yè)分片進(jìn)行分配。如圖2所示,在對第二作業(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)行第一輪分配時,首先將負(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,此時將待分配列表中的負(fù)載值從大到小為20、10、10的作業(yè)分片,依次分配至各個服務(wù)器上,從而完成了作業(yè)分片的分配。

      本實(shí)施例當(dāng)集群域內(nèi)的服務(wù)器存在減容時,將減容服務(wù)器上的第二作業(yè)分片按照負(fù)載值從大到小依次分配至負(fù)載值由小到大的各個服務(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條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1