本申請涉及計算機(jī),具體涉及一種分布式服務(wù)負(fù)載分配方法、分布式服務(wù)系統(tǒng)及相關(guān)設(shè)備。
背景技術(shù):
1、對于分布式服務(wù)而言,保持分布式服務(wù)的負(fù)載均衡有利于分布式服務(wù)的穩(wěn)定運行。為了保證負(fù)載均衡,現(xiàn)有技術(shù)中當(dāng)發(fā)現(xiàn)新的待分配任務(wù)時,常常將待分配任務(wù)直接分配至低負(fù)載的分布式服務(wù)節(jié)點執(zhí)行。
2、但是,上述任務(wù)分配方式無法保證被分配任務(wù)執(zhí)行的可靠性,時常出現(xiàn)被分配的任務(wù)以極低的效率執(zhí)行甚至無法完成的情況。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明致力于提供一種項目代碼優(yōu)化方法、異常處理方法、計算設(shè)備和存儲介質(zhì),以提供一種更加可靠的分布式服務(wù)負(fù)載分配方法。
2、第一方面,本申請實施例提供了一種分布式服務(wù)負(fù)載分配方法,包括:
3、獲取待分配任務(wù)和分布式服務(wù)節(jié)點,所述待分配任務(wù)具有黏性標(biāo)識數(shù)據(jù)位,所述黏性標(biāo)識數(shù)據(jù)位中的數(shù)據(jù)為空數(shù)據(jù)或任意一個分布式服務(wù)節(jié)點的節(jié)點標(biāo)識;
4、篩選出所述分布式服務(wù)節(jié)點中負(fù)載任務(wù)量低于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量的分布式服務(wù)節(jié)點作為低負(fù)載節(jié)點;
5、依據(jù)黏性規(guī)則,將所述待分配任務(wù)分配至所述低負(fù)載節(jié)點直至所述低負(fù)載節(jié)點的負(fù)載任務(wù)量等于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量,所述黏性規(guī)則指示在每一次任務(wù)分配中,優(yōu)先將待分配任務(wù)分配至節(jié)點標(biāo)識與該待分配任務(wù)的黏性標(biāo)識數(shù)據(jù)位中的數(shù)據(jù)相同的分布式服務(wù)節(jié)點。
6、可選地,所述將所述待分配任務(wù)分配至所述低負(fù)載節(jié)點直至所述低負(fù)載節(jié)點的負(fù)載任務(wù)量等于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量之后,還包括:
7、當(dāng)仍存在未分配的待分配任務(wù)時,對所述未分配的待分配任務(wù)進(jìn)行多輪分配,直至將所有未分配的待分配任務(wù)分配至所述分布式服務(wù)節(jié)點,所述多輪分配中的每一輪分配,會為所述分布式服務(wù)節(jié)點中的任意一個分布式服務(wù)節(jié)點分配預(yù)設(shè)分配量的待分配任務(wù)。
8、可選地,當(dāng)預(yù)設(shè)分配量為一個待分配任務(wù)時,所述對所述未分配的待分配任務(wù)進(jìn)行多輪分配,包括:
9、對所述分布式服務(wù)節(jié)點重復(fù)執(zhí)行如下的單輪分配操作,直至將所有未分配的待分配任務(wù)分配至所述分布式服務(wù)節(jié)點:
10、選擇一個尚未被選擇過的分布式服務(wù)節(jié)點,根據(jù)黏性規(guī)則,為該分布式服務(wù)節(jié)點分配一個未分配的待分配任務(wù),當(dāng)存在多個黏性標(biāo)識數(shù)據(jù)位中的數(shù)據(jù)與該分布式服務(wù)節(jié)點的節(jié)點標(biāo)識相同的待分配任務(wù)時,選擇其中的任意一個待分配任務(wù)進(jìn)行本次分配;
11、當(dāng)不存在尚未被選擇過且可通過黏性規(guī)則進(jìn)行任務(wù)分配的分布式服務(wù)節(jié)點時,根據(jù)空白優(yōu)先分配規(guī)則,為所有剩余的尚未被選擇過的分布式服務(wù)節(jié)點都分配一個未分配的待分配任務(wù),所述空白優(yōu)先分配規(guī)則指示優(yōu)先選擇所述黏性標(biāo)識數(shù)據(jù)位中是空數(shù)據(jù)的待分配任務(wù)進(jìn)行任務(wù)分配;
12、將所有分布式服務(wù)節(jié)點的被選擇狀態(tài)重置為尚未被選擇過,結(jié)束本輪分配。
13、可選地,所述方法,還包括:
14、篩選出所述分布式服務(wù)節(jié)點中負(fù)載任務(wù)量高于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量的分布式服務(wù)節(jié)點作為高負(fù)載節(jié)點;
15、移除所述高負(fù)載節(jié)點的部分負(fù)載任務(wù)直至所述高負(fù)載節(jié)點的負(fù)載任務(wù)量等于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量;
16、將所述被移除的部分負(fù)載任務(wù)加入所述待分配任務(wù)。
17、可選地,所述預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量的獲取方式,包括:
18、接收輸入指令,所述輸入指令包括所述預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量;
19、或,
20、統(tǒng)計分布式服務(wù)節(jié)點的數(shù)量和總?cè)蝿?wù)量,所述總?cè)蝿?wù)量為所有分布式服務(wù)節(jié)點的負(fù)載任務(wù)量以及所有待分配任務(wù)量之和;計算所述總?cè)蝿?wù)量與分布式服務(wù)節(jié)點的數(shù)量的商作為所述預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量。
21、第二方面,本申請實施例提供了一種分布式服務(wù)系統(tǒng),所述分布式服務(wù)系統(tǒng)中具有策略分配層,用于執(zhí)行如第一方面所述的分布式服務(wù)負(fù)載分配方法。
22、可選地,所述分布式服務(wù)系統(tǒng),包括:
23、應(yīng)用層,用于運行后端服務(wù)應(yīng)用;
24、策略分配層,用于收集所述應(yīng)用層和業(yè)務(wù)層的數(shù)據(jù),使用權(quán)利要求1-5中任意一項所述的分布式服務(wù)負(fù)載分配方法對所述業(yè)務(wù)層進(jìn)行負(fù)載分配;
25、所述業(yè)務(wù)層,用于對應(yīng)用層所運行的后端服務(wù)應(yīng)用的服務(wù)數(shù)據(jù)進(jìn)行處理;
26、存儲層,用于保存所述業(yè)務(wù)層處理后的數(shù)據(jù);
27、數(shù)據(jù)組裝層,用于將存儲層的數(shù)據(jù)進(jìn)行組裝,使數(shù)據(jù)的格式符合各種網(wǎng)關(guān)引擎規(guī)定的數(shù)據(jù)格式;
28、網(wǎng)關(guān)運行環(huán)境層,用于對接各種網(wǎng)關(guān)引擎并向各種網(wǎng)關(guān)引擎發(fā)送經(jīng)由數(shù)據(jù)組裝層組裝的數(shù)據(jù)。
29、可選地,所述分布式服務(wù)系統(tǒng)中的存儲層,使用對象存儲或數(shù)據(jù)庫存儲的方式存儲所述業(yè)務(wù)層處理后的數(shù)據(jù);
30、所述分布式服務(wù)系統(tǒng)中的所述應(yīng)用層和所述存儲層之間,包括多個策略分配層和多個業(yè)務(wù)層,用以執(zhí)行復(fù)雜的數(shù)據(jù)處理流程。
31、第三方面,本申請實施例提供了一種電子設(shè)備,包括存儲器和處理器;
32、所述存儲器與所述處理器連接,用于存儲程序;
33、所述處理器用于通過運行所述存儲器中的程序,實現(xiàn)如第一方面所述的分布式服務(wù)負(fù)載分配方法。
34、第四方面,本申請實施例提供了一種存儲介質(zhì),所述存儲介質(zhì)上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器運行時,實現(xiàn)如如第一方面所述的分布式服務(wù)負(fù)載分配方法法。
35、本申請?zhí)峁┝艘环N分布式服務(wù)負(fù)載分配方法,通過為待分配任務(wù)添加黏性標(biāo)識數(shù)據(jù)位,并使用黏性規(guī)則進(jìn)行任務(wù)分配,使得在保持分布式服務(wù)的負(fù)載均衡的前提下,待分配任務(wù)可以優(yōu)先分配至與待分配任務(wù)的黏性標(biāo)識相同的分布式服務(wù)節(jié)點進(jìn)行執(zhí)行。通過在黏性標(biāo)識數(shù)據(jù)位填入能夠高效準(zhǔn)確執(zhí)行該任務(wù)的分布式服務(wù)節(jié)點的節(jié)點標(biāo)識,就可以大幅度增加待分配任務(wù)的執(zhí)行成功率。
1.一種分布式服務(wù)負(fù)載分配方法,其特征在于,所述方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述待分配任務(wù)分配至所述低負(fù)載節(jié)點直至所述低負(fù)載節(jié)點的負(fù)載任務(wù)量等于預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量之后,還包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)預(yù)設(shè)分配量為一個待分配任務(wù)時,所述對所述未分配的待分配任務(wù)進(jìn)行多輪分配,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法,還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的標(biāo)準(zhǔn)任務(wù)量的獲取方式,包括:
6.一種分布式服務(wù)系統(tǒng),其特征在于,所述分布式服務(wù)系統(tǒng)中具有策略分配層,用于執(zhí)行如權(quán)利要求1-5中任意一項所述的分布式服務(wù)負(fù)載分配方法。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述分布式服務(wù)系統(tǒng),包括:
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述分布式服務(wù)系統(tǒng)中的存儲層,使用對象存儲或數(shù)據(jù)庫存儲的方式存儲所述業(yè)務(wù)層處理后的數(shù)據(jù);
9.一種電子設(shè)備,其特征在于,包括存儲器和處理器;
10.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器運行時,實現(xiàn)如權(quán)利要求1至5中任意一項所述的分布式服務(wù)負(fù)載分配方法。