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