本發(fā)明屬于高性能計算技術(shù)領(lǐng)域,尤其涉及一種基于仿真軟件的資源分配方法及系統(tǒng)。
背景技術(shù):
仿真軟件(simulationsoftware),專門用于仿真的計算機(jī)軟件。它與仿真硬件同為仿真的技術(shù)工具。它的發(fā)展與仿真應(yīng)用、算法、計算機(jī)和建模等技術(shù)的發(fā)展相輔相成。但現(xiàn)有的仿真軟件所提供的web組件數(shù)據(jù)處理性能往往不能滿足多用戶同時訪問。例如商貿(mào)經(jīng)營決策仿真競賽軟件中所提供web服務(wù)組件,在競賽軟件的學(xué)生端出現(xiàn)學(xué)生并發(fā)訪問時,web服務(wù)器經(jīng)常會出現(xiàn)無響應(yīng),并需要人工進(jìn)行重新啟動的現(xiàn)象。因此,面對現(xiàn)有仿真軟件應(yīng)用中出現(xiàn)的上述情況,有必要提出一種新的基于仿真軟件的資源請求分配方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了基于仿真軟件的資源請求分配方法及裝置,以解決現(xiàn)有技術(shù)中仿真軟件提供的web服務(wù)的組件在進(jìn)行資源請求分配時處理效率低,服務(wù)器經(jīng)常出現(xiàn)無響應(yīng)的問題。
本發(fā)明實(shí)施例的第一方面提供了一種基于仿真軟件的資源分配方法,所述資源分配方法包括:
接收用戶發(fā)送的web頁面請求,判斷所接收的web頁面請求數(shù)量是否超過第一預(yù)設(shè)閾值;
在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器;
動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果選擇所述web頁面請求需分配的二級服務(wù)器。
本發(fā)明實(shí)施例的第二方面提供了一種基于仿真軟件的資源分配方法,所述資源分配方法包括:
接收一級服務(wù)器轉(zhuǎn)發(fā)的web頁面請求;
生成與所述web頁面請求相對應(yīng)的資源定位符,存儲所述資源定位符于session隊(duì)列中。
本發(fā)明實(shí)施例的第三方面提供了一種基于仿真軟件的資源分配系統(tǒng),所述基于仿真軟件的資源分配系統(tǒng)包括一級服務(wù)器和二級服務(wù)器,所述一級服務(wù)器包括:
頁面請求接收單元,用于接收用戶發(fā)送的web頁面請求,判斷所接收的web頁面請求數(shù)量是否超過第一預(yù)設(shè)閾值;
二級服務(wù)器啟動單元,用于在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器;
分配單元,用于動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果選擇所述web頁面請求需分配的二級服務(wù)器。
本發(fā)明實(shí)施例與現(xiàn)有技術(shù)相比存在的有益效果是:在進(jìn)行仿真軟件業(yè)務(wù)仿真時,由一級服務(wù)器首先接收用戶發(fā)送的web頁面請求,當(dāng)判斷出所述web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動至少兩個二級服務(wù)器;動態(tài)輪詢所述二級服務(wù)器后,根據(jù)輪詢結(jié)果,將所接收到的web頁面分配到適合的二級服務(wù)器。通過動態(tài)輪詢策略使二級服務(wù)器負(fù)載均衡,提高了其執(zhí)行效率。啟動多個二級服務(wù)器進(jìn)行服務(wù),重復(fù)使用單個二級服務(wù)器的概率減少,每個二級服務(wù)器的服務(wù)能力得到充分調(diào)動。分配到單個二級服務(wù)器的負(fù)載減少,降低了二級服務(wù)器失效的概率,提高了原本性能不高的仿真軟件的業(yè)務(wù)吞吐能力。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明第一實(shí)施例提供的一種基于仿真軟件的資源分配方法的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明第一實(shí)施例提供的圖1中步驟s13的具體流程圖;
圖3本發(fā)明第二實(shí)施例提供的一種基于仿真軟件的資源分配方法的實(shí)現(xiàn)流程圖;
圖4是本發(fā)明第三實(shí)施例提供的一種基于仿真軟件的資源分配系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、技術(shù)之類的具體細(xì)節(jié),以便透徹理解本發(fā)明實(shí)施例。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實(shí)施例中也可以實(shí)現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的系統(tǒng)、裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本發(fā)明的描述。
為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
本發(fā)明實(shí)施例中,在進(jìn)行仿真軟件進(jìn)行業(yè)務(wù)仿真時,由一級服務(wù)器首先接收用戶發(fā)送的web頁面請求,當(dāng)判斷出所述web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動至少兩個二級服務(wù)器;動態(tài)輪詢所述二級服務(wù)器后,根據(jù)輪詢結(jié)果,將所接收到的web頁面分配到適合的二級服務(wù)器。
為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
實(shí)施例一:
圖1示出了本發(fā)明第一實(shí)施例提供的一種基于仿真軟件的資源分配方法的流程圖,詳述如下:
步驟s11,接收用戶發(fā)送的web頁面請求,判斷所接收的web頁面請求數(shù)量是否超過第一預(yù)設(shè)閾值;
仿真軟件的用戶端經(jīng)常需要一次性接收多于一個的用戶請求,同一時間內(nèi)接收的用戶請求過多時,用戶端的服務(wù)器(即一級服務(wù)器)經(jīng)常會響應(yīng)慢甚至無響應(yīng)的情況。因此,本發(fā)明實(shí)施例提供的基于仿真軟件的資源分配方法中,一級服務(wù)器對一定時間間隔內(nèi)所接收到的用戶發(fā)出的web頁面請求的數(shù)量先進(jìn)行判斷,判斷所接收到的web頁面請求的數(shù)量是否超過第一預(yù)設(shè)閾值。所述第一預(yù)設(shè)閾值可以根據(jù)仿真軟件的系統(tǒng)處理能力進(jìn)行設(shè)定,即仿真系統(tǒng)配置的軟、硬件處理能力較強(qiáng)時可以設(shè)置較大的第一預(yù)設(shè)閾值;仿真系統(tǒng)配置的軟、硬件處理能力一般時可相應(yīng)減少第一預(yù)設(shè)閾值,具體數(shù)值在此不做限制。
步驟s12,在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器;
該步驟中,若一級服務(wù)器判斷出一定時間間隔內(nèi)所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值,則根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器。首先對接收到的web頁面請求的數(shù)量進(jìn)行判斷,在一段時間內(nèi)web頁面請求數(shù)量過多,超過一級服務(wù)器的處理能力時再啟動多個二級服務(wù)器,若沒有超過,則不啟動多個二級服務(wù)器,這樣,既保證了用戶請求及時被響應(yīng),又避免了在不需要時啟動多個二級服務(wù)器的情況,起到節(jié)約資源的作用。
優(yōu)選地,所述在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器,具體包括:
在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求,獲取隊(duì)列長度,所述隊(duì)列長度與二級服務(wù)器的個數(shù)對應(yīng);
根據(jù)所述隊(duì)列長度啟動至少兩個二級服務(wù)器。
具體的,一級服務(wù)器判斷出一定時間間隔內(nèi)所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動加速模塊,獲取當(dāng)前進(jìn)程中健康隊(duì)列的隊(duì)列長度,所述隊(duì)列長度與二級服務(wù)器的個數(shù)對應(yīng),因此,可以根據(jù)所獲取的健康的隊(duì)列的隊(duì)列長度確定可以啟動的二級服務(wù)器的數(shù)量,其中,所述加速模塊用于快速啟動二級服務(wù)器,以便啟動的二級服務(wù)器能夠更快地響應(yīng)web頁面請求。所述隊(duì)列長度=隊(duì)頭–隊(duì)尾;根據(jù)所述隊(duì)列長度從非關(guān)系型數(shù)據(jù)庫,nosql中獲取并啟動二級服務(wù)器,記錄所啟動的二級服務(wù)器的信息,記錄的二級服務(wù)器的信息形成計算資源池?;趎osql的內(nèi)存數(shù)據(jù)庫,利用了nosql數(shù)據(jù)庫高速訪問的特點(diǎn),實(shí)現(xiàn)了高性能的服務(wù)資源池。服務(wù)資源池化實(shí)現(xiàn)了應(yīng)用資源輸出隊(duì)列,服務(wù)資源同構(gòu)可互換性。
步驟s13,動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果選擇所述web頁面請求需分配的二級服務(wù)器。
該步驟中,對已啟動的二級服務(wù)器進(jìn)行動態(tài)輪詢策略,動態(tài)輪詢策略即web負(fù)載均衡動態(tài)輪詢策略,用途是資源分配。它是一個多階段決策問題,各個階段的決策構(gòu)成一個決策序列,稱為一個策略。輪詢時可選的策略有,基于蒙特卡洛方法的動態(tài)輪詢策略,基于空間劃分輪詢策略。兩者相結(jié)合,將用戶發(fā)送的web頁面請求均勻的分配給二級服務(wù)器,實(shí)現(xiàn)負(fù)載均衡。
如圖2所示,所述動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果選擇所述web頁面請求需分配的二級服務(wù)器,具體包括:
步驟s131,逐個判斷所述二級服務(wù)器是否存在與所述web頁面請求相關(guān)的標(biāo)記,當(dāng)判斷出所述二級服務(wù)器中不存在與所述web頁面請求相關(guān)的標(biāo)記時,通過蒙特卡洛算法生成隨機(jī)種子,根據(jù)生成的隨機(jī)種子計算分配所述web頁面請求到所述二級服務(wù)器的概率;
步驟s132,根據(jù)所述概率選擇所述web頁面請求分配的二級服務(wù)器;
步驟s133,當(dāng)判斷出所述二級服務(wù)器中存在與所述web頁面請求相關(guān)的標(biāo)記時,直接分配所述web頁面請求到對其進(jìn)行標(biāo)記的二級服務(wù)器。
具體地,在將用戶發(fā)送的web頁面請求分配到二級服務(wù)器時,首先調(diào)用所述二級服務(wù)器中的session隊(duì)列,查詢所述session隊(duì)列中是否存儲有所述web頁面請求的資源定位符---vsrl-rli,若未在所述二級服務(wù)器的session隊(duì)列中查詢到所述web頁面請求的資源定位符,則通過蒙特卡洛算法對已啟動的二級服務(wù)器進(jìn)行動態(tài)輪詢,以確定出最適合接收當(dāng)前web頁面請求的二級服務(wù)器。輪詢到已啟動的二級服務(wù)器中的某一個時,采用蒙特卡洛算法進(jìn)行動態(tài)輪詢時,通過md5算法生成隨機(jī)種子,使用所述隨機(jī)種子生成一個隨機(jī)字符串,對字符串進(jìn)行加密,得到一個64bit十進(jìn)制的正整數(shù)m。由于可接收web頁面請求的二級服務(wù)器的數(shù)量有限,假設(shè)存儲有二級服務(wù)器的信息的健康隊(duì)列的隊(duì)列長度為n,即,可啟動n個二級服務(wù)器,則對值空間做一投射,將m投射到n個二級服務(wù)器上。當(dāng)二級服務(wù)器的參數(shù)值為m時,分配web頁面請求到該參數(shù)值(或隨機(jī)種子)為m的二級服務(wù)器的概率為:p(a)=p(a|m)。根據(jù)對每個啟動的二級服務(wù)器輪詢得出的概率,將接收到的web頁面請求均勻的分配到不同的二級服務(wù)器;在對每個啟動的二級服務(wù)器進(jìn)行輪詢得出分配web頁面請求到二級服務(wù)器的概率后,優(yōu)先將web頁面請求分配到所得概率數(shù)值較大的二級服務(wù)器,使每個二級服務(wù)器負(fù)載均衡。采用蒙特卡洛算法分配web頁面請求時,將原有的批量處理方法,修改為聯(lián)機(jī)處理方法,分流了一級服務(wù)器的負(fù)載。
進(jìn)一步地,若在所述二級服務(wù)器的session隊(duì)列中查詢到所述web頁面請求的資源定位符,說明用戶已通過該二級服務(wù)器處理過所述web頁面請求,則直接將所述web頁面請求分配到該二級服務(wù)器,由該二級服務(wù)器完成頁面尋址等邏輯業(yè)務(wù)。
優(yōu)選地,在所述動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果分配所述web頁面請求到所述二級服務(wù)器之后,還包括:
監(jiān)控所述二級服務(wù)器,當(dāng)所述二級服務(wù)器的系統(tǒng)占用率達(dá)到預(yù)設(shè)閾值時,關(guān)閉系統(tǒng)占用率達(dá)到第二預(yù)設(shè)閾值的二級服務(wù)器,返回訪問失敗結(jié)果,重新分配用戶發(fā)出的web頁面請求。
該步驟中,健康管理系統(tǒng)通過系統(tǒng)進(jìn)程查詢語言,對二級服務(wù)器的應(yīng)用執(zhí)行狀態(tài)進(jìn)行健康評估,即監(jiān)控二級服務(wù)器的系統(tǒng)cpu占用情況,若監(jiān)控到某個二級服務(wù)器系統(tǒng)cpu占用率超過第二預(yù)設(shè)閾值,說明當(dāng)前二級服務(wù)器負(fù)載過重,則當(dāng)前二級服務(wù)器不再接收新的任務(wù)請求。程序顯式提示用戶重新登錄以重新發(fā)送web頁面請求,返回一級服務(wù)器,重新分配接收所述web頁面請求二級服務(wù)器。重新分配的二級服務(wù)器可讀取到相同的決策數(shù)據(jù),實(shí)現(xiàn)服務(wù)資源同構(gòu)可互換的特性。所述二級服務(wù)器即為服務(wù)資源,也就是用于接收web頁面請求的資源。所述健康管理系統(tǒng)進(jìn)程扮演了用于資源監(jiān)控,它部署了一個閉環(huán)控制反饋系統(tǒng),基于pdca模型的詳細(xì)規(guī)格,實(shí)現(xiàn)了增量和大規(guī)模服務(wù)質(zhì)量,操作有效性,和業(yè)務(wù)持續(xù)能力的改進(jìn)。它能夠接受計劃視角下輸入流量的變化,并使一級服務(wù)具有高可靠性。
本發(fā)明第一實(shí)施例中,在進(jìn)行仿真軟件進(jìn)行業(yè)務(wù)仿真時,由一級服務(wù)器首先接收用戶發(fā)送的web頁面請求,當(dāng)判斷出所述web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動至少兩個二級服務(wù)器;動態(tài)輪詢所述二級服務(wù)器后,根據(jù)輪詢結(jié)果,將所接收到的web頁面分配到適合的二級服務(wù)器。在進(jìn)行動態(tài)輪詢時采用了蒙特卡洛方法結(jié)合按空間劃分輪詢策略,使二級服務(wù)器負(fù)載均衡,提高了其執(zhí)行效率。同時啟動多個二級服務(wù)器進(jìn)行服務(wù),重復(fù)使用單個二級服務(wù)器的概率減少,每個二級服務(wù)器的服務(wù)能力得到充分調(diào)動。分配到單個二級服務(wù)器的負(fù)載減少,降低了二級服務(wù)器失效的概率,提高了原本性能不高的仿真軟件的業(yè)務(wù)吞吐能力;另外,由于二級服務(wù)器的數(shù)量具有高可擴(kuò)展性,可動態(tài)適應(yīng)的計算服務(wù)需求的增長。
應(yīng)理解,上述實(shí)施例中各步驟的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。
實(shí)施例二:
圖3示出了本發(fā)明第二實(shí)施例提供的一種基于仿真軟件的資源分配方法的流程圖,其中:
步驟s31,接收一級服務(wù)器轉(zhuǎn)發(fā)的web頁面請求;
步驟s32,生成與所述web頁面請求相對應(yīng)的資源定位符,存儲所述資源定位符于session隊(duì)列中。
本發(fā)明第二實(shí)施例中,二級服務(wù)器在接收到一級服務(wù)器發(fā)送的新的之后創(chuàng)建新的session,返回用戶請求的服務(wù)資源,生成與所述web頁面請求相對應(yīng)的vsrl-rli,并將所述vsrl-rli存儲在二級服務(wù)器中的session中,以供用戶下次發(fā)出相同請求時,一級服務(wù)器根據(jù)其生成的資源定位符與二級服務(wù)器生成的資源定位符進(jìn)行匹配,若能夠正確匹配,則直接將其分配到已記錄匹配的資源定位符的二級服務(wù)器。
實(shí)施例三:
對應(yīng)于上文實(shí)施例一、實(shí)施例二所述的一種基于基于仿真軟件的資源分配方法,圖4示出了本發(fā)明實(shí)施例提供的一種基于基于仿真軟件的資源分配系統(tǒng)的結(jié)構(gòu)框圖,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
參照圖4,所述資源分配系統(tǒng)包括:包括一級服務(wù)器41和二級服務(wù)器42,所述一級服務(wù)器包括:頁面請求接收單元411,二級服務(wù)器啟動單元412,分配單元413;其中:
頁面請求接收單元411,用于接收用戶發(fā)送的web頁面請求,判斷所接收的web頁面請求數(shù)量是否超過第一預(yù)設(shè)閾值;
具體地,一級服務(wù)器對一定時間間隔內(nèi)所接收到的用戶發(fā)出的web頁面請求的數(shù)量先進(jìn)行判斷,判斷所接收到的web頁面請求的數(shù)量是否超過第一預(yù)設(shè)閾值。所述第一預(yù)設(shè)閾值可以根據(jù)仿真軟件的系統(tǒng)處理能力進(jìn)行設(shè)定,即仿真系統(tǒng)配置的軟、硬件處理能力較強(qiáng)時可以設(shè)置較大的第一預(yù)設(shè)閾值;仿真系統(tǒng)配置的軟、硬件處理能力一般時可相應(yīng)減少第一預(yù)設(shè)閾值,具體數(shù)值在此不做限制。
二級服務(wù)器啟動單元412,用于在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器;
若一級服務(wù)器判斷出一定時間間隔內(nèi)所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值,則根據(jù)所述web頁面請求啟動至少兩個二級服務(wù)器。首先對接收到的web頁面請求的數(shù)量進(jìn)行判斷,在一段時間內(nèi)web頁面請求數(shù)量過多,超過一級服務(wù)器的處理能力時再啟動多個二級服務(wù)器,若沒有超過,則不啟動多個二級服務(wù)器,這樣,既保證了用戶請求及時被響應(yīng),又避免了在不需要時啟動多個二級服務(wù)器的情況,起到節(jié)約資源的作用。
優(yōu)選地,所述二級服務(wù)器啟動單元412,具體包括:
隊(duì)列長度獲取模塊,用于在所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,根據(jù)所述web頁面請求,獲取隊(duì)列長度,所述隊(duì)列長度與二級服務(wù)器的個數(shù)對應(yīng);
啟動模塊,用于根據(jù)所述隊(duì)列長度啟動至少兩個二級服務(wù)器。
具體的,一級服務(wù)器判斷出一定時間間隔內(nèi)所接收的web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動加速模塊,獲取當(dāng)前進(jìn)程中健康隊(duì)列的隊(duì)列長度,所述隊(duì)列長度與二級服務(wù)器的個數(shù)對應(yīng),因此,可以根據(jù)所獲取的健康的隊(duì)列的隊(duì)列長度確定可以啟動的二級服務(wù)器的數(shù)量,其中,所述加速模塊用于快速啟動二級服務(wù)器,以便啟動的二級服務(wù)器能夠更快地響應(yīng)web頁面請求。所述隊(duì)列長度=隊(duì)頭–隊(duì)尾;根據(jù)所述隊(duì)列長度從非關(guān)系型數(shù)據(jù)庫,nosql中獲取并啟動二級服務(wù)器,記錄所啟動的二級服務(wù)器的信息,記錄的二級服務(wù)器的信息形成計算資源池?;趎osql的內(nèi)存數(shù)據(jù)庫,利用了nosql數(shù)據(jù)庫高速訪問的特點(diǎn),實(shí)現(xiàn)了高性能的服務(wù)資源池。服務(wù)資源池化實(shí)現(xiàn)了應(yīng)用資源輸出隊(duì)列,服務(wù)資源同構(gòu)可互換性。
分配單元413,用于動態(tài)輪詢所述二級服務(wù)器,根據(jù)輪詢結(jié)果選擇所述web頁面請求需分配的二級服務(wù)器。
具體地,對已啟動的二級服務(wù)器進(jìn)行動態(tài)輪詢策略,動態(tài)輪詢策略即web負(fù)載均衡動態(tài)輪詢策略,用途是資源分配。它是一個多階段決策問題,各個階段的決策構(gòu)成一個決策序列,稱為一個策略。輪詢時可選的策略有,基于蒙特卡洛方法的動態(tài)輪詢策略,基于空間劃分輪詢策略。兩者相結(jié)合,將用戶發(fā)送的web頁面請求均勻的分配給二級服務(wù)器,實(shí)現(xiàn)負(fù)載均衡。
優(yōu)選地,所述分配單元413,具體包括:
概率計算模塊,用于逐個判斷所述二級服務(wù)器是否存在與所述web頁面請求相關(guān)的標(biāo)記,當(dāng)判斷出所述二級服務(wù)器中不存在與所述web頁面請求相關(guān)的標(biāo)記時,通過蒙特卡洛算法生成隨機(jī)種子,根據(jù)生成的隨機(jī)種子計算分配所述web頁面請求到所述二級服務(wù)器的概率;
第一分配模塊,用于根據(jù)所述概率選擇所述web頁面請求分配的二級服務(wù)器;
第二分配模塊,用于當(dāng)判斷出所述二級服務(wù)器中存在與所述web頁面請求相關(guān)的標(biāo)記時,直接分配所述web頁面請求到對其進(jìn)行標(biāo)記的二級服務(wù)器。
具體地,在將用戶發(fā)送的web頁面請求分配到二級服務(wù)器時,首先調(diào)用所述二級服務(wù)器中的session隊(duì)列,查詢所述session隊(duì)列中是否存儲有所述web頁面請求的資源定位符---vsrl-rli,若未在所述二級服務(wù)器的session隊(duì)列中查詢到所述web頁面請求的資源定位符,則通過蒙特卡洛算法對已啟動的二級服務(wù)器進(jìn)行動態(tài)輪詢,以確定出最適合接收當(dāng)前web頁面請求的二級服務(wù)器。輪詢到已啟動的二級服務(wù)器中的某一個時,采用蒙特卡洛算法進(jìn)行動態(tài)輪詢時,通過md5算法生成隨機(jī)種子,使用所述隨機(jī)種子生成一個隨機(jī)字符串,對字符串進(jìn)行加密,得到一個64bit十進(jìn)制的正整數(shù)m。由于可接收web頁面請求的二級服務(wù)器的數(shù)量有限,假設(shè)存儲有二級服務(wù)器的信息的健康隊(duì)列的隊(duì)列長度為n,即,可啟動n個二級服務(wù)器,則對值空間做一投射,將m投射到n個二級服務(wù)器上。當(dāng)二級服務(wù)器的參數(shù)值為m時,分配web頁面請求到該參數(shù)值(或隨機(jī)種子)為m的二級服務(wù)器的概率為:p(a)=p(a|m)。根據(jù)對每個啟動的二級服務(wù)器輪詢得出的概率,將接收到的web頁面請求均勻的分配到不同的二級服務(wù)器;在對每個啟動的二級服務(wù)器進(jìn)行輪詢得出分配web頁面請求到二級服務(wù)器的概率后,優(yōu)先將web頁面請求分配到所得概率數(shù)值較大的二級服務(wù)器,使每個二級服務(wù)器負(fù)載均衡。采用蒙特卡洛算法分配web頁面請求時,將原有的批量處理方法,修改為聯(lián)機(jī)處理方法,分流了一級服務(wù)器的負(fù)載。
進(jìn)一步地,若在所述二級服務(wù)器的session隊(duì)列中查詢到所述web頁面請求的資源定位符,說明用戶已通過該二級服務(wù)器處理過所述web頁面請求,則直接將所述web頁面請求分配到該二級服務(wù)器,由該二級服務(wù)器完成頁面尋址等邏輯業(yè)務(wù)。
優(yōu)選地,所述資源分配系統(tǒng),還包括:
監(jiān)控單元,用于監(jiān)控所述二級服務(wù)器,當(dāng)所述二級服務(wù)器的系統(tǒng)占用率達(dá)到預(yù)設(shè)閾值時,關(guān)閉系統(tǒng)占用率達(dá)到第二預(yù)設(shè)閾值的二級服務(wù)器,返回訪問失敗結(jié)果,重新分配用戶發(fā)出的web頁面請求。
具體地,健康管理系統(tǒng)通過系統(tǒng)進(jìn)程查詢語言,對二級服務(wù)器的應(yīng)用執(zhí)行狀態(tài)進(jìn)行健康評估,即監(jiān)控二級服務(wù)器的系統(tǒng)cpu占用情況,若監(jiān)控到某個二級服務(wù)器系統(tǒng)cpu占用率超過第二預(yù)設(shè)閾值,說明當(dāng)前二級服務(wù)器負(fù)載過重,則當(dāng)前二級服務(wù)器不再接收新的任務(wù)請求。程序顯式提示用戶重新登錄以重新發(fā)送web頁面請求,返回一級服務(wù)器,重新分配接收所述web頁面請求二級服務(wù)器。重新分配的二級服務(wù)器可讀取到相同的決策數(shù)據(jù),實(shí)現(xiàn)服務(wù)資源同構(gòu)可互換的特性。所述二級服務(wù)器即為服務(wù)資源,也就是用于接收web頁面請求的資源。所述健康管理系統(tǒng)進(jìn)程扮演了用于資源監(jiān)控,它部署了一個閉環(huán)控制反饋系統(tǒng),基于pdca模型的詳細(xì)規(guī)格,實(shí)現(xiàn)了增量和大規(guī)模服務(wù)質(zhì)量,操作有效性,和業(yè)務(wù)持續(xù)能力的改進(jìn)。它能夠接受計劃視角下輸入流量的變化,并使一級服務(wù)具有高可靠性。
優(yōu)選地,所述二級服務(wù)器42,還包括:
記錄單元421,用于接收一級服務(wù)器轉(zhuǎn)發(fā)的web頁面請求,并生成與所述web頁面請求相對應(yīng)的資源定位符,存儲所述資源定位符于session隊(duì)列中。
具體地,二級服務(wù)器在接收到一級服務(wù)器發(fā)送的新的之后創(chuàng)建新的session,返回用戶請求的服務(wù)資源,生成與所述web頁面請求相對應(yīng)的vsrl-rli,并將所述vsrl-rli存儲在二級服務(wù)器中的session中,以供用戶下次發(fā)出相同請求時,一級服務(wù)器根據(jù)其生成的資源定位符與二級服務(wù)器生成的資源定位符進(jìn)行匹配,若能夠正確匹配,則直接將其分配到已記錄匹配的資源定位符的二級服務(wù)器。
本發(fā)明第三實(shí)施例中,在進(jìn)行仿真軟件進(jìn)行業(yè)務(wù)仿真時,由一級服務(wù)器首先接收用戶發(fā)送的web頁面請求,當(dāng)判斷出所述web頁面請求的數(shù)量超過第一預(yù)設(shè)閾值時,啟動至少兩個二級服務(wù)器;動態(tài)輪詢所述二級服務(wù)器后,根據(jù)輪詢結(jié)果,將所接收到的web頁面分配到適合的二級服務(wù)器。在進(jìn)行動態(tài)輪詢時采用了蒙特卡洛方法結(jié)合按空間劃分輪詢策略,使二級服務(wù)器負(fù)載均衡,提高了其執(zhí)行效率。同時啟動多個二級服務(wù)器進(jìn)行服務(wù),重復(fù)使用單個二級服務(wù)器的概率減少,每個二級服務(wù)器的服務(wù)能力得到充分調(diào)動。分配到單個二級服務(wù)器的負(fù)載減少,降低了二級服務(wù)器失效的概率,提高了原本性能不高的仿真軟件的業(yè)務(wù)吞吐能力;另外,由于二級服務(wù)器的數(shù)量具有高可擴(kuò)展性,可動態(tài)適應(yīng)的計算服務(wù)需求的增長。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將所述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實(shí)施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中,上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護(hù)范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
在上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述或記載的部分,可以參見其它實(shí)施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明實(shí)施例各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。