專利名稱:多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及任務(wù)調(diào)度方法及裝置,更具體地,涉及多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法 及裝置。
背景技術(shù):
目前,隨著網(wǎng)絡(luò)應(yīng)用的日益廣泛,服務(wù)器系統(tǒng)的數(shù)據(jù)流量成倍增加,從而傳統(tǒng)類型 的服務(wù)器系統(tǒng)的數(shù)據(jù)處理能力受到極大挑戰(zhàn)。因此,為了解決上述問題,如下兩種方式被廣泛使用(1)進(jìn)行硬件升級(jí),購買配 置更高、性能更好的服務(wù)器,此方法簡單易行,然而成本過高并會(huì)導(dǎo)致現(xiàn)有資源的浪費(fèi),且 下一次業(yè)務(wù)量提升時(shí)還會(huì)面臨同樣的問題;(2)采用集群技術(shù),即利用兩臺(tái)以上的服務(wù)器 進(jìn)行協(xié)同工作,該方案具有高的可靠性和強(qiáng)大靈活的系統(tǒng)擴(kuò)充能力。然而,當(dāng)兩臺(tái)以上的服務(wù)器進(jìn)行協(xié)同工作時(shí)必然涉及負(fù)載均衡問題,即多服務(wù)器 間的任務(wù)調(diào)度。目前常用的多服務(wù)器任務(wù)調(diào)度方式為使用中間件技術(shù)。但是,該方式具有 如下缺點(diǎn)購買、配置和管理成本高,并且調(diào)度服務(wù)所在的主機(jī)(即服務(wù)器)必須獨(dú)立于被 調(diào)度服務(wù)所在的所有主機(jī),因?yàn)槿绻{(diào)度服務(wù)所在的主機(jī)上存在被調(diào)度服務(wù),而其他主機(jī) 上也存在被調(diào)度服務(wù)時(shí),即使通過現(xiàn)有中間件產(chǎn)品的負(fù)載均衡參數(shù)進(jìn)行控制,一旦調(diào)度請 求發(fā)出,則調(diào)度服務(wù)所在的主機(jī)只要有絲毫空閑資源,就會(huì)優(yōu)先調(diào)度本機(jī)服務(wù),即不能實(shí)現(xiàn) 真正的負(fù)載均衡,并且不能做到諸如循環(huán)復(fù)用、隨機(jī)選擇、加權(quán)選擇等多樣化的需求。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)方案所存在的缺陷,本發(fā)明提出了一種可以以自適應(yīng)方式 在多服務(wù)器間進(jìn)行任務(wù)調(diào)度的方法及裝置。本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的—種多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,所述方法包括如下步驟(Al)啟動(dòng)調(diào)度服務(wù)所在的服務(wù)器,接收調(diào)用請求并讀取配置信息;(A2)根據(jù)所述配置信息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器;(A3)當(dāng)被調(diào)度服務(wù)器被確定后,判斷所述被調(diào)度服務(wù)器的可用狀態(tài);(A4)如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則開始調(diào)用所述被調(diào)度服務(wù)器 上的服務(wù);(A5)如果調(diào)用失敗,則將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“不可用”,并將所 述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)加1,然后根據(jù)所述配置信息重新選擇被調(diào)度服務(wù)器,或 者丟棄所述調(diào)用請求后返回;(A6)如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則判斷所述被調(diào)度服務(wù)器的 已調(diào)度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗次數(shù)達(dá)到了所述閾值,則將所述被 調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“可用”,同時(shí)將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置為 0,并嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù);
(A7)如果調(diào)度成功則返回,如果調(diào)度失敗則返回步驟(A5)。在上面所公開的方案中,優(yōu)選地,所述配置信息以文件或數(shù)據(jù)庫的方式存在,用于 存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè)數(shù)和正常個(gè)數(shù),并且當(dāng)所述被調(diào)用服務(wù)器上的被調(diào)用服務(wù)啟動(dòng)時(shí) 將所述正常個(gè)數(shù)加1,當(dāng)所述被調(diào)用服務(wù)器上的被調(diào)用服務(wù)停止時(shí)將所述正常個(gè)數(shù)減1。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為循環(huán)復(fù)用算法,所 述循環(huán)復(fù)用算法依次輪詢每個(gè)服務(wù)器。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為隨機(jī)選擇算法,所 述隨機(jī)選擇算法根據(jù)隨機(jī)函數(shù)產(chǎn)生的隨機(jī)數(shù)選擇服務(wù)器。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為加權(quán)選擇算法,所 述加權(quán)選擇算法根據(jù)每個(gè)服務(wù)器的使用策略選擇服務(wù)器。在上面所公開的方案中,優(yōu)選地,所述閾值是用戶預(yù)先定義的,并存儲(chǔ)在所述配置 信息中。本發(fā)明的目的還可以通過以下技術(shù)方案實(shí)現(xiàn) 一種多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,所述多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置包括配置 信息存儲(chǔ)模塊、初始化模塊、服務(wù)器選擇模塊、服務(wù)器調(diào)度模塊、調(diào)度失敗次數(shù)設(shè)置模塊、調(diào) 度失敗次數(shù)比較模塊和服務(wù)器狀態(tài)更改模塊;其中,所述配置信息存儲(chǔ)模塊與所述初始化模塊相連接,用于存儲(chǔ)配置信息;所述初始化模塊與所述服務(wù)器選擇模塊相連接,用于啟動(dòng)調(diào)度服務(wù)所在的服務(wù) 器,并從所述配置信息存儲(chǔ)模塊處讀取所述配置信息,并將讀取到的所述配置信息發(fā)送到 所述服務(wù)器選擇模塊,同時(shí),將所述配置信息中的調(diào)度失敗次數(shù)閾值發(fā)送到所述調(diào)度失敗 次數(shù)比較模塊;所述服務(wù)器選擇模塊與所述服務(wù)器調(diào)度模塊相連接,用于根據(jù)接收到的所述配置 信息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器,并將選擇結(jié)果發(fā)送給所述服務(wù)器調(diào)度 模塊;所述服務(wù)器調(diào)度模塊分別與所述調(diào)度失敗次數(shù)設(shè)置模塊、所述調(diào)度失敗次數(shù)比較 模塊和所述服務(wù)器狀態(tài)更改模塊相連接,所述服務(wù)器調(diào)度模塊接收調(diào)度請求并在接收到被 調(diào)度服務(wù)器選擇結(jié)果后,判斷被選擇的被調(diào)度服務(wù)器的可用狀態(tài),并根據(jù)判斷結(jié)果對所述 被調(diào)度服務(wù)器進(jìn)行調(diào)度;所述調(diào)度失敗次數(shù)設(shè)置模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器 調(diào)度模塊的通知而設(shè)置指定服務(wù)器的調(diào)度失敗次數(shù),并將設(shè)置結(jié)果返回給所述服務(wù)器調(diào)度 模塊;所述調(diào)度失敗次數(shù)比較模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器 調(diào)度模塊的通知而將指定服務(wù)器的調(diào)度失敗次數(shù)與預(yù)定的閾值相比較,并將比較結(jié)果返回 給所述服務(wù)器調(diào)度模塊;所述服務(wù)器狀態(tài)更改模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器調(diào) 度模塊的通知而更改指定服務(wù)器的狀態(tài)信息,并將更改結(jié)果返回給所述服務(wù)器調(diào)度模塊。在上面所公開的方案中,優(yōu)選地,所述服務(wù)器調(diào)度模塊的調(diào)度過程如下如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則開始調(diào)用所述被調(diào)度服務(wù)器上的 服務(wù),如果調(diào)用失敗,則通知所述服務(wù)器狀態(tài)更改模塊將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“不可用”,并通知調(diào)度失敗次數(shù)設(shè)置模塊將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)加1, 然后根據(jù)所述配置信息重新選擇被調(diào)度服務(wù)器,或者丟棄所述調(diào)用請求后返回;如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則通知所述調(diào)度失敗次數(shù)比較 模塊判斷所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗次數(shù) 達(dá)到了所述閾值,則通知所述服務(wù)器狀態(tài)更改模塊將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為 “可用”,同時(shí)通知所述調(diào)度失敗次數(shù)設(shè)置模塊將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置 為0,并嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù),如果調(diào)度成功則返回,如果調(diào)度失敗則通知 所述服務(wù)器選擇模塊重新進(jìn)行被調(diào)度服務(wù)器的選擇。在上面所公開的方案中,優(yōu)選地,所述配置信息用于存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè)數(shù) 和正常個(gè)數(shù),并且當(dāng)所述被調(diào)用服務(wù)器上的被調(diào)用服務(wù)啟動(dòng)時(shí)將所述正常個(gè)數(shù)加1,當(dāng)所述 被調(diào)用服務(wù)器上的被調(diào)用服務(wù)停止時(shí)將所述正常個(gè)數(shù)減1。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為循環(huán)復(fù)用算法,所 述循環(huán)復(fù)用算法依次輪詢每個(gè)服務(wù)器。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為隨機(jī)選擇算法,所 述隨機(jī)選擇算法根據(jù)隨機(jī)函數(shù)產(chǎn)生的隨機(jī)數(shù)選擇服務(wù)器。在上面所公開的方案中,可選地,所述預(yù)定的服務(wù)器選擇算法為加權(quán)選擇算法,所 述加權(quán)選擇算法根據(jù)每個(gè)服務(wù)器的使用策略選擇服務(wù)器。在上面所公開的方案中,優(yōu)選地,所述閾值是用戶預(yù)先定義的,并存儲(chǔ)在所述配置 信息存儲(chǔ)模塊中。本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法和裝置具有如下優(yōu)點(diǎn)調(diào)度服務(wù)通 過對各個(gè)服務(wù)器狀態(tài)的維護(hù)而實(shí)現(xiàn)真正的負(fù)載均衡(即包括調(diào)度服務(wù)所在的服務(wù)器的負(fù) 載均衡),并可使故障服務(wù)器自動(dòng)隔離,且當(dāng)故障服務(wù)器恢復(fù)后又能主動(dòng)恢復(fù)調(diào)用。
結(jié)合附圖,本發(fā)明的技術(shù)特征以及優(yōu)點(diǎn)將會(huì)被本領(lǐng)域技術(shù)人員更好地理解,其 中圖1為根據(jù)本發(fā)明的實(shí)施例的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法的流程圖;圖2為根據(jù)本發(fā)明的實(shí)施例的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置的結(jié)構(gòu)具體實(shí)施例方式圖1為根據(jù)本發(fā)明的實(shí)施例的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法的流程圖。如圖1所 示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法包括如下步驟=(Al)啟動(dòng)調(diào)度服務(wù)所在 的服務(wù)器,并讀取配置信息;(A2)根據(jù)所述配置信息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào) 度服務(wù)器;(A3)當(dāng)被調(diào)度服務(wù)器被確定后,判斷所述被調(diào)度服務(wù)器的可用狀態(tài);(A4)如果 所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則開始調(diào)用所述被調(diào)度服務(wù)器上的服務(wù);(A5)如 果調(diào)用失敗,則將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“不可用”,并將所述被調(diào)度服務(wù)器 的已調(diào)度失敗次數(shù)加1,然后根據(jù)配置信息重新選擇被調(diào)度服務(wù)器,或者丟棄所述調(diào)用請求 后返回;(A6)如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則判斷所述被調(diào)度服務(wù)器的 已調(diào)度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗次數(shù)達(dá)到了所述閾值,則將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“可用”,同時(shí)將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置為 0,并嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù);(A7)如果調(diào)度成功則返回,如果調(diào)度失敗則返 回步驟(A5)。其中,所述配置信息以文件或數(shù)據(jù)庫的方式存在,用于存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè) 數(shù)和正常個(gè)數(shù)?;鶞?zhǔn)個(gè)數(shù)是指部署有被調(diào)用服務(wù)的所有服務(wù)器的總個(gè)數(shù),而正常個(gè)數(shù)是指 可用狀態(tài)為“可用”的所有服務(wù)器的總個(gè)數(shù)。并且,當(dāng)服務(wù)器上的被調(diào)用服務(wù)啟動(dòng)時(shí)將所述 正常個(gè)數(shù)加1,當(dāng)服務(wù)器上的被調(diào)用服務(wù)停止時(shí)將所述正常個(gè)數(shù)減1。此外,調(diào)度服務(wù)所在 的主機(jī)啟動(dòng)調(diào)度服務(wù)時(shí),所述調(diào)度服務(wù)讀取配置信息并且在進(jìn)程內(nèi)維護(hù)一個(gè)結(jié)構(gòu)體數(shù)組, 用于記錄所述基準(zhǔn)個(gè)數(shù)和正常個(gè)數(shù)以及各服務(wù)器的可用狀態(tài)和已調(diào)度失敗次數(shù)。如圖1所示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法的步驟(A2)中的預(yù)定 服務(wù)器選擇算法為循環(huán)復(fù)用算法,即依次輪詢每個(gè)服務(wù)器??蛇x地,所述預(yù)定服務(wù)器選擇算 法可以是用戶自定義的任何其他選擇算法,例如,所述預(yù)定服務(wù)器選擇算法可以是隨機(jī)選 擇算法,即根據(jù)隨機(jī)函數(shù)產(chǎn)生的隨機(jī)數(shù)而選擇服務(wù)器,或加權(quán)選擇算法,即根據(jù)每個(gè)服務(wù)器 的使用策略而選擇服務(wù)器。如圖1所示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法的步驟(A6)中的閾值 是用戶預(yù)先定義的,并存儲(chǔ)在配置信息中。圖2為根據(jù)本發(fā)明的實(shí)施例的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置的結(jié)構(gòu)圖。如圖2 所示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置包括配置信息存儲(chǔ)模塊1、初始化模塊 2、服務(wù)器選擇模塊3、服務(wù)器調(diào)度模塊4、調(diào)度失敗次數(shù)設(shè)置模塊5、調(diào)度失敗次數(shù)比較模塊 6和服務(wù)器狀態(tài)更改模塊7。其中,所述配置信息存儲(chǔ)模塊1與初始化模塊2相連接,用于 存儲(chǔ)配置信息。所述初始化模塊2與服務(wù)器選擇模塊3相連接,用于啟動(dòng)調(diào)度服務(wù)所在的 服務(wù)器,并從配置信息存儲(chǔ)模塊1處讀取配置信息,并將讀取到的配置信息發(fā)送到服務(wù)器 選擇模塊3,同時(shí),將配置信息中的已調(diào)度失敗次數(shù)閾值發(fā)送到調(diào)度失敗次數(shù)比較模塊6。 所述服務(wù)器選擇模塊3與服務(wù)器調(diào)度模塊4相連接,用于根據(jù)所接收到的配置信息以及預(yù) 定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器,并將選擇結(jié)果發(fā)送給服務(wù)器調(diào)度模塊4。所述服 務(wù)器調(diào)度模塊4分別與調(diào)度失敗次數(shù)設(shè)置模塊5、調(diào)度失敗次數(shù)比較模塊6和服務(wù)器狀態(tài) 更改模塊7相連接,服務(wù)器調(diào)度模塊4接收調(diào)度請求并在接收到被調(diào)度服務(wù)器選擇結(jié)果后, 判斷被選擇的被調(diào)度服務(wù)器的可用狀態(tài),如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則 開始調(diào)用所述被調(diào)度服務(wù)器上的服務(wù),如果調(diào)用失敗,則通知服務(wù)器狀態(tài)更改模塊7將所 述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“不可用”,并通知調(diào)度失敗次數(shù)設(shè)置模塊5將所述被調(diào) 度服務(wù)器的已調(diào)度失敗次數(shù)加1,然后根據(jù)配置信息重新選擇被調(diào)度服務(wù)器,或者丟棄所述 調(diào)用請求后返回;如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則通知調(diào)度失敗次數(shù)比 較模塊6判斷所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗 次數(shù)達(dá)到了所述閾值,則通知服務(wù)器狀態(tài)更改模塊7將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置 為“可用”,同時(shí)通知調(diào)度失敗次數(shù)設(shè)置模塊5將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置 為0,并嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù),如果調(diào)度成功則返回,如果調(diào)度失敗則通知 服務(wù)器選擇模塊3重新進(jìn)行被調(diào)度服務(wù)器的選擇。所述調(diào)度失敗次數(shù)設(shè)置模塊5與服務(wù)器 調(diào)度模塊4相連接,用于接收服務(wù)器調(diào)度模塊4的通知而設(shè)置指定服務(wù)器的調(diào)度失敗次數(shù), 并將設(shè)置結(jié)果返回給服務(wù)器調(diào)度模塊4。所述調(diào)度失敗次數(shù)比較模塊6與服務(wù)器調(diào)度模塊4相連接,用于接收服務(wù)器調(diào)度模塊4的通知而將指定服務(wù)器的調(diào)度失敗次數(shù)與預(yù)定的閾 值相比較,并將比較結(jié)果返回給服務(wù)器調(diào)度模塊4。所述服務(wù)器狀態(tài)更改模塊7與服務(wù)器調(diào) 度模塊4相連接,用于接收服務(wù)器調(diào)度模塊4的通知而更改指定服務(wù)器的狀態(tài)信息,并將更 改結(jié)果返回給服務(wù)器調(diào)度模塊4。其中,所述配置信息用于存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè)數(shù)和正常個(gè)數(shù)?;鶞?zhǔn)個(gè)數(shù)是指 部署有被調(diào)用服務(wù)的所有服務(wù)器的總個(gè)數(shù),而正常個(gè)數(shù)是指可用狀態(tài)為“可用”的所有服務(wù) 器的總個(gè)數(shù)。并且,當(dāng)服務(wù)器上的被調(diào)用服務(wù)啟動(dòng)時(shí)將所述正常個(gè)數(shù)加1,當(dāng)服務(wù)器上的被 調(diào)用服務(wù)停止時(shí)將所述正常個(gè)數(shù)減1。如圖2所示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置中的預(yù)定服務(wù)器選擇 算法為循環(huán)復(fù)用算法,即依次輪詢每個(gè)服務(wù)器??蛇x地,所述預(yù)定服務(wù)器選擇算法可以是用 戶自定義的任何其他選擇算法,例如,所述預(yù)定服務(wù)器選擇算法可以是隨機(jī)選擇算法,即根 據(jù)隨機(jī)函數(shù)產(chǎn)生的隨機(jī)數(shù)而選擇服務(wù)器,或加權(quán)選擇算法,即根據(jù)每個(gè)服務(wù)器的使用策略 而選擇服務(wù)器。如圖2所示,本發(fā)明所公開的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置中的閾值是用戶預(yù)先 定義的,并存儲(chǔ)在配置信息中。盡管本發(fā)明是通過上述的優(yōu)選實(shí)施方式進(jìn)行描述的,但是其實(shí)現(xiàn)形式并不局限于 上述的實(shí)施方式。應(yīng)該認(rèn)識(shí)到在不脫離本發(fā)明主旨和范圍的情況下,本領(lǐng)域技術(shù)人員可以 對本發(fā)明做出不同的變化和修改。
權(quán)利要求
1.一種多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,所述方法包括如下步驟(Al)啟動(dòng)調(diào)度服務(wù)所在的服務(wù)器,接收調(diào)用請求并讀取配置信息;(A2)根據(jù)所述配置信息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器;(A3)當(dāng)被調(diào)度服務(wù)器被確定后,判斷所述被調(diào)度服務(wù)器的可用狀態(tài);(A4)如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則開始調(diào)用所述被調(diào)度服務(wù)器上的 服務(wù);(A5)如果調(diào)用失敗,則將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“不可用”,并將所述被 調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)加1,然后根據(jù)所述配置信息重新選擇被調(diào)度服務(wù)器,或者丟 棄所述調(diào)用請求后返回;(A6)如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則判斷所述被調(diào)度服務(wù)器的已調(diào) 度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗次數(shù)達(dá)到了所述閾值,則將所述被調(diào)度 服務(wù)器的可用狀態(tài)設(shè)置為“可用”,同時(shí)將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置為0,并 嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù);(A7)如果調(diào)度成功則返回,如果調(diào)度失敗則返回步驟(A5)。
2.根據(jù)權(quán)利要求1所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,其特征在于,所述配置信息 以文件或數(shù)據(jù)庫的方式存在,用于存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè)數(shù)和正常個(gè)數(shù),并且當(dāng)所述被 調(diào)用服務(wù)器上的被調(diào)用服務(wù)啟動(dòng)時(shí)將所述正常個(gè)數(shù)加1,當(dāng)所述被調(diào)用服務(wù)器上的被調(diào)用 服務(wù)停止時(shí)將所述正常個(gè)數(shù)減1。
3.根據(jù)權(quán)利要求1-2中任一個(gè)權(quán)利要求所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,其特征 在于,所述預(yù)定的服務(wù)器選擇算法為循環(huán)復(fù)用算法,所述循環(huán)復(fù)用算法依次輪詢每個(gè)服務(wù)器ο
4.根據(jù)權(quán)利要求1-2中任一個(gè)權(quán)利要求所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,其特征 在于,所述預(yù)定的服務(wù)器選擇算法為隨機(jī)選擇算法,所述隨機(jī)選擇算法根據(jù)隨機(jī)函數(shù)產(chǎn)生 的隨機(jī)數(shù)選擇服務(wù)器。
5.根據(jù)權(quán)利要求1-2中任一個(gè)權(quán)利要求所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,其特征 在于,所述預(yù)定的服務(wù)器選擇算法為加權(quán)選擇算法,所述加權(quán)選擇算法根據(jù)每個(gè)服務(wù)器的 使用策略選擇服務(wù)器。
6.根據(jù)權(quán)利要求1-5中任一個(gè)權(quán)利要求所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法,其特征 在于,所述閾值是用戶預(yù)先定義的,并存儲(chǔ)在所述配置信息中。
7.一種多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,所述多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置包括配置信 息存儲(chǔ)模塊、初始化模塊、服務(wù)器選擇模塊、服務(wù)器調(diào)度模塊、調(diào)度失敗次數(shù)設(shè)置模塊、調(diào)度 失敗次數(shù)比較模塊和服務(wù)器狀態(tài)更改模塊;其中,所述配置信息存儲(chǔ)模塊與所述初始化模塊相連接,用于存儲(chǔ)配置信息;所述初始化模塊與所述服務(wù)器選擇模塊相連接,用于啟動(dòng)調(diào)度服務(wù)所在的服務(wù)器,并 從所述配置信息存儲(chǔ)模塊處讀取所述配置信息,并將讀取到的所述配置信息發(fā)送到所述服 務(wù)器選擇模塊,同時(shí),將所述配置信息中的調(diào)度失敗次數(shù)閾值發(fā)送到所述調(diào)度失敗次數(shù)比 較模塊;所述服務(wù)器選擇模塊與所述服務(wù)器調(diào)度模塊相連接,用于根據(jù)接收到的所述配置信 息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器,并將選擇結(jié)果發(fā)送給所述服務(wù)器調(diào)度模塊;所述服務(wù)器調(diào)度模塊分別與所述調(diào)度失敗次數(shù)設(shè)置模塊、所述調(diào)度失敗次數(shù)比較模塊 和所述服務(wù)器狀態(tài)更改模塊相連接,所述服務(wù)器調(diào)度模塊接收調(diào)度請求并在接收到被調(diào)度 服務(wù)器選擇結(jié)果后,判斷被選擇的被調(diào)度服務(wù)器的可用狀態(tài),并根據(jù)判斷結(jié)果對所述被調(diào) 度服務(wù)器進(jìn)行調(diào)度;所述調(diào)度失敗次數(shù)設(shè)置模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器調(diào) 度模塊的通知而設(shè)置指定服務(wù)器的調(diào)度失敗次數(shù),并將設(shè)置結(jié)果返回給所述服務(wù)器調(diào)度模 塊;所述調(diào)度失敗次數(shù)比較模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器調(diào)度 模塊的通知而將指定服務(wù)器的調(diào)度失敗次數(shù)與預(yù)定的閾值相比較,并將比較結(jié)果返回給所 述服務(wù)器調(diào)度模塊;所述服務(wù)器狀態(tài)更改模塊與所述服務(wù)器調(diào)度模塊相連接,用于接收所述服務(wù)器調(diào)度模 塊的通知而更改指定服務(wù)器的狀態(tài)信息,并將更改結(jié)果返回給所述服務(wù)器調(diào)度模塊。
8.根據(jù)權(quán)利要求7所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征在于,所述服務(wù)器調(diào) 度模塊的調(diào)度過程如下如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“可用”,則開始調(diào)用所述被調(diào)度服務(wù)器上的服 務(wù),如果調(diào)用失敗,則通知所述服務(wù)器狀態(tài)更改模塊將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置 為“不可用”,并通知調(diào)度失敗次數(shù)設(shè)置模塊將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)加1,然 后根據(jù)所述配置信息重新選擇被調(diào)度服務(wù)器,或者丟棄所述調(diào)用請求后返回;如果所述被調(diào)度服務(wù)器的可用狀態(tài)為“不可用”,則通知所述調(diào)度失敗次數(shù)比較模塊 判斷所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)是否達(dá)到了閾值,如果所述已調(diào)度失敗次數(shù)達(dá)到 了所述閾值,則通知所述服務(wù)器狀態(tài)更改模塊將所述被調(diào)度服務(wù)器的可用狀態(tài)設(shè)置為“可 用”,同時(shí)通知所述調(diào)度失敗次數(shù)設(shè)置模塊將所述被調(diào)度服務(wù)器的已調(diào)度失敗次數(shù)設(shè)置為 0,并嘗試調(diào)用所述被調(diào)度服務(wù)器上的服務(wù),如果調(diào)度成功則返回,如果調(diào)度失敗則通知所 述服務(wù)器選擇模塊重新進(jìn)行被調(diào)度服務(wù)器的選擇。
9.根據(jù)權(quán)利要求7-8中任一個(gè)權(quán)利要求所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征 在于,所述配置信息用于存儲(chǔ)所有服務(wù)器的基準(zhǔn)個(gè)數(shù)和正常個(gè)數(shù),并且當(dāng)所述被調(diào)用服務(wù) 器上的被調(diào)用服務(wù)啟動(dòng)時(shí)將所述正常個(gè)數(shù)加1,當(dāng)所述被調(diào)用服務(wù)器上的被調(diào)用服務(wù)停止 時(shí)將所述正常個(gè)數(shù)減1。
10.根據(jù)權(quán)利要求7-9所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征在于,所述預(yù)定的 服務(wù)器選擇算法為循環(huán)復(fù)用算法,所述循環(huán)復(fù)用算法依次輪詢每個(gè)服務(wù)器。
11.根據(jù)權(quán)利要求7-9所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征在于,所述預(yù)定的 服務(wù)器選擇算法為隨機(jī)選擇算法,所述隨機(jī)選擇算法根據(jù)隨機(jī)函數(shù)產(chǎn)生的隨機(jī)數(shù)選擇服務(wù)ο
12.根據(jù)權(quán)利要求7-9所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征在于,所述預(yù)定的 服務(wù)器選擇算法為加權(quán)選擇算法,所述加權(quán)選擇算法根據(jù)每個(gè)服務(wù)器的使用策略選擇服務(wù)
13.根據(jù)權(quán)利要求7-12所述的多服務(wù)器自適應(yīng)任務(wù)調(diào)度裝置,其特征在于,所述閾值 是用戶預(yù)先定義的,并存儲(chǔ)在所述配置信息存儲(chǔ)模塊中。
全文摘要
本發(fā)明提出了一種多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法和裝置。其中,所述多服務(wù)器自適應(yīng)任務(wù)調(diào)度方法包括如下步驟啟動(dòng)調(diào)度服務(wù)所在的服務(wù)器,接收調(diào)用請求并讀取配置信息;根據(jù)所述配置信息以及預(yù)定的服務(wù)器選擇算法選擇被調(diào)度服務(wù)器;當(dāng)被調(diào)度服務(wù)器被確定后,判斷所述被調(diào)度服務(wù)器的可用狀態(tài),并根據(jù)判斷結(jié)果對選擇出的被調(diào)度服務(wù)器進(jìn)行調(diào)度;如果調(diào)度成功則返回,如果調(diào)度失敗則重新選擇被調(diào)度服務(wù)器并進(jìn)行后續(xù)處理。
文檔編號(hào)H04L12/56GK102006314SQ20091019502
公開日2011年4月6日 申請日期2009年9月2日 優(yōu)先權(quán)日2009年9月2日
發(fā)明者陳林, 馬東良 申請人:中國銀聯(lián)股份有限公司