本文涉及但不限于云計算技術(shù)和虛擬化技術(shù),尤指一種實(shí)現(xiàn)資源預(yù)留的方法和裝置。
背景技術(shù):
網(wǎng)絡(luò)(web)服務(wù)作為目前最流行的分布式計算方式之一,提供了一種與操作系統(tǒng)無關(guān)、與程序設(shè)計語言無關(guān)、與機(jī)器類型無關(guān)、與運(yùn)行環(huán)境無關(guān)的開放平臺,實(shí)現(xiàn)網(wǎng)絡(luò)資源的協(xié)作與共享。云計算平臺集成的資源多以web服務(wù)的形式向用戶提供,許多計算任務(wù)往往需要大量的計算資源(包括中央處理器(cpu,centralprocessingunit)資源和內(nèi)存資源)和存儲資源協(xié)同工作來完成,有效地控制和保障這類計算任務(wù)的服務(wù)質(zhì)量(qos,qualityofservice)成為云計算面臨的重要議題之一。由于云計算環(huán)境下資源的可獲得性和性能的動態(tài)變化,未來預(yù)留時間段內(nèi)資源的可獲得性和性能難以得到保證,因此,將資源的提前預(yù)留作為一種qos的保障機(jī)制引入到云計算環(huán)境下面臨著挑戰(zhàn)。全球網(wǎng)絡(luò)論壇(ggf,globalgridforum)將資源提前預(yù)留定義為:用戶與資源所有者經(jīng)過協(xié)商,在指定時間段內(nèi)獲得的對資源的限制性訪問權(quán)限。實(shí)際上,提前預(yù)留可以看作是云計算平臺的一種承諾,在指定時間段內(nèi)可以獲得特定水平的服務(wù)。
相關(guān)技術(shù)中,實(shí)現(xiàn)資源預(yù)留的方法大致包括:
數(shù)據(jù)中心的管理服務(wù)器接收到來自用戶的預(yù)留請求,判斷出數(shù)據(jù)中心中的可用資源中存在預(yù)留請求中的全部資源,從可用資源中為用戶分配資源并向用戶返回分配的資源。
相關(guān)技術(shù)中,當(dāng)判斷出數(shù)據(jù)中心中的可用資源中不存在預(yù)留請求中的全部資源時,管理服務(wù)器向用戶返回拒絕消息,使得數(shù)據(jù)中心在資源不足時,預(yù)留請求的拒絕率較高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提出了一種實(shí)現(xiàn)資源預(yù)留的方法和裝置,能夠降低預(yù)留請求的拒絕率。
本發(fā)明實(shí)施例提出了一種實(shí)現(xiàn)資源預(yù)留的方法,包括:
聯(lián)合服務(wù)器接收到來自用戶的預(yù)留請求,獲取多個數(shù)據(jù)中心中的可用資源;
聯(lián)合服務(wù)器判斷出不存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心,根據(jù)獲得的多個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求;其中,預(yù)設(shè)條件包括數(shù)據(jù)中心的可用資源中包括預(yù)留請求中的全部資源;
聯(lián)合服務(wù)器將每一個簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心的服務(wù)器;
聯(lián)合服務(wù)器向用戶返回接收到的來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源。
可選的,該方法還包括:
當(dāng)所述聯(lián)合服務(wù)器判斷出存在滿足所述預(yù)設(shè)條件的一個或多個數(shù)據(jù)中心時,所述聯(lián)合服務(wù)器將預(yù)留請求發(fā)送給滿足所述預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器;
所述聯(lián)合服務(wù)器向所述用戶返回接收到的來自所述滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源。
可選的,所述聯(lián)合服務(wù)器將預(yù)留請求發(fā)送給滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器包括:
所述聯(lián)合服務(wù)器按照公式
其中,ε1為所述偏差程度,m1為所述預(yù)留請求中的資源包含的需求參數(shù)的個數(shù),q1i1為所述數(shù)據(jù)中心中的資源的第i1個需求參數(shù),r1i1為所述預(yù)留請求中的資源的第i1個需求參數(shù)。
可選的,該方法還包括:
所述聯(lián)合服務(wù)器將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)。
可選的,該方法還包括:
所述聯(lián)合服務(wù)器向所述用戶返回所述分配的資源后,生成預(yù)留消息并放入預(yù)留隊(duì)列中;
當(dāng)所述預(yù)留消息中的預(yù)留開始時間到達(dá)時,所述聯(lián)合服務(wù)器判斷出所述預(yù)留消息中分配的資源均可用,將所述用戶的提前預(yù)留狀態(tài)更改為活躍狀態(tài),通知用戶已綁定所需資源,通知分配資源的數(shù)據(jù)中心將分配給所述用戶的資源置為不可用。
可選的,該方法還包括:
當(dāng)所述聯(lián)合服務(wù)器判斷出所述預(yù)留消息中分配的資源中的部分或全部資源不可用時,所述聯(lián)合服務(wù)器繼續(xù)執(zhí)行所述獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
可選的,該方法還包括:
當(dāng)所述預(yù)留消息中的預(yù)留結(jié)束時間到達(dá)時,所述聯(lián)合服務(wù)器將所述用戶的提前預(yù)留狀態(tài)更改為完成狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源;
或者,當(dāng)所述聯(lián)合服務(wù)器判斷出滿足預(yù)設(shè)終止條件時,所述聯(lián)合服務(wù)器將所述用戶的提前預(yù)留狀態(tài)更改為終止?fàn)顟B(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
可選的,該方法還包括:
所述聯(lián)合服務(wù)器接收到來自所述用戶的修改預(yù)留請求,繼續(xù)執(zhí)行獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
可選的,該方法還包括:
所述聯(lián)合服務(wù)器接收到來自所述用戶的修改預(yù)留請求后,將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定重協(xié)商狀態(tài)或活躍重協(xié)商狀態(tài);
所述聯(lián)合服務(wù)器向所述用戶返回重新協(xié)商后分配的資源后,將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)或活躍狀態(tài)。
可選的,該方法還包括:
所述聯(lián)合服務(wù)器接收到來自所述用戶的撤銷請求,將所述用戶的提前預(yù)留狀態(tài)更改為撤銷狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
本發(fā)明實(shí)施例還提出了一種實(shí)現(xiàn)資源預(yù)留的裝置,包括:
獲取模塊,用于接收到來自用戶的預(yù)留請求,獲取多個數(shù)據(jù)中心中的可用資源;接收到來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源;
處理模塊,用于判斷出不存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心,根據(jù)獲得的多個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求;其中,預(yù)設(shè)條件包括數(shù)據(jù)中心的可用資源中包括預(yù)留請求中的全部資源;將每一個簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心的服務(wù)器;
返回模塊,用于向用戶返回接收到的來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源。
可選的,所述處理模塊還用于:
當(dāng)判斷出存在滿足所述預(yù)設(shè)條件的一個或多個數(shù)據(jù)中心時,所述聯(lián)合服務(wù)器將預(yù)留請求發(fā)送給滿足所述預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器;
所述獲取模塊還用于:
接收到來自所述滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源;
所述返回模塊還用于:
向所述用戶返回接收到的來自所述滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源。
可選的,所述處理模塊還用于:
將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)。
可選的,所述返回模塊還用于:
向所述用戶返回所述分配的資源后,向所述處理模塊發(fā)送第一通知消息;
所述處理模塊還用于:
接收到第一通知消息,生成預(yù)留消息并放入預(yù)留隊(duì)列中;當(dāng)所述預(yù)留消息中的預(yù)留開始時間到達(dá)時,判斷出所述預(yù)留消息中分配的資源均可用,將所述用戶的提前預(yù)留狀態(tài)更改為活躍狀態(tài)通知用戶已綁定所需資源,通知分配資源的數(shù)據(jù)中心將分配給所述用戶的資源置為不可用。
可選的,所述處理模塊還用于:
當(dāng)判斷出所述預(yù)留消息中分配的資源中的部分或全部資源不可用時,向所述獲取模塊發(fā)送第二通知消息;
所述獲取模塊還用于:
接收到所述第二通知消息,繼續(xù)執(zhí)行所述獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
可選的,所述處理模塊還用于:
當(dāng)所述預(yù)留消息中的預(yù)留結(jié)束時間到達(dá)時,將所述用戶的提前預(yù)留狀態(tài)更改為完成狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源;
或者,當(dāng)所述聯(lián)合服務(wù)器判斷出滿足預(yù)設(shè)終止條件時,將所述用戶的提前預(yù)留狀態(tài)更改為終止?fàn)顟B(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
可選的,所述獲取模塊還用于:
接收到來自所述用戶的修改預(yù)留請求,繼續(xù)執(zhí)行獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
可選的,所述獲取模塊還用于:
接收到來自所述用戶的修改預(yù)留請求后,向所述處理模塊發(fā)送第三通知消息;
所述返回模塊還用于:
向所述用戶返回重新協(xié)商后分配的資源后,向所述處理模塊發(fā)送第四通知消息;
所述處理模塊還用于:
接收到所述第三通知消息,將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定重協(xié)商狀態(tài)或活躍重協(xié)商狀態(tài);接收到所述第四通知消息,將所述用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)或活躍狀態(tài)。
可選的,所述獲取模塊還用于:
接收到來自所述用戶的撤銷請求,向所述處理模塊發(fā)送第五通知消息;
所述處理模塊還用于:
接收到所述第五通知消息,將所述用戶的提前預(yù)留狀態(tài)更改為撤銷狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
與相關(guān)技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案包括:聯(lián)合服務(wù)器接收到來自用戶的預(yù)留請求,獲取多個數(shù)據(jù)中心中的可用資源;聯(lián)合服務(wù)器判斷出不存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心,根據(jù)獲得的多個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求;其中,預(yù)設(shè)條件包括數(shù)據(jù)中心的可用資源中包括預(yù)留請求中的全部資源;聯(lián)合服務(wù)器將每一個簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心的服務(wù)器;聯(lián)合服務(wù)器向用戶返回接收到的來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源。通過本發(fā)明實(shí)施例的方案,通過聯(lián)合服務(wù)器實(shí)現(xiàn)多個數(shù)據(jù)中心的可用資源的請求,在一個數(shù)據(jù)中心資源不足時,從多個數(shù)據(jù)中心中為用戶分配資源,降低了預(yù)留請求的拒絕率。
附圖說明
下面對本發(fā)明實(shí)施例中的附圖進(jìn)行說明,實(shí)施例中的附圖是用于對本發(fā)明的進(jìn)一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。
圖1為本發(fā)明實(shí)施例實(shí)現(xiàn)資源預(yù)留的方法的流程圖;
圖2為本發(fā)明實(shí)施例實(shí)現(xiàn)資源預(yù)留的系統(tǒng)的結(jié)構(gòu)組成示意圖;
圖3為本發(fā)明實(shí)施例用戶的提前預(yù)留狀態(tài)變化示意圖;
圖4為本發(fā)明實(shí)現(xiàn)資源預(yù)留的裝置的結(jié)構(gòu)組成示意圖。
具體實(shí)施方式
為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述,并不能用來限制本發(fā)明的保護(hù)范圍。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的各種方式可以相互組合。
參見圖1,本發(fā)明實(shí)施例提出了一種實(shí)現(xiàn)資源預(yù)留的方法,包括:
步驟100、聯(lián)合服務(wù)器接收到來自用戶的預(yù)留請求,獲取多個數(shù)據(jù)中心中的可用資源。
本步驟中,預(yù)留請求包括:預(yù)留開始時間、預(yù)留結(jié)束時間、qos需求參數(shù)、請求預(yù)留的資源。
其中,qos需求參數(shù)包括用戶希望達(dá)到的服務(wù)水平,即每一種資源對應(yīng)的需求參數(shù)。例如,虛擬cpu核數(shù)、內(nèi)存大小、磁盤空間、網(wǎng)卡數(shù)、端口數(shù)、網(wǎng)絡(luò)帶寬、互聯(lián)網(wǎng)協(xié)議(ip,internetprotocol)地址、媒體訪問控制(mac,mediaaccesscontrol)地址等。
其中,請求預(yù)留的資源包括以下的任意一種或多種:計算資源、存儲資源、網(wǎng)絡(luò)資源等。
其中,計算資源包括中央處理器(cpu,centerprocessunit)資源和內(nèi)存資源,網(wǎng)絡(luò)資源包括網(wǎng)絡(luò)帶寬資源等。
本步驟中,圖2為本發(fā)明實(shí)施例實(shí)現(xiàn)資源預(yù)留的系統(tǒng)的結(jié)構(gòu)組成示意圖。如圖2所示,聯(lián)合服務(wù)器可以從全局信息中心中獲取一個或多個數(shù)據(jù)中心中的可用資源,具體可以采用向全局信息中心發(fā)送查詢可用資源的指令的方式來獲取。其中,全局信息中心可以是一個服務(wù)器。
聯(lián)合服務(wù)器也可以從每一個數(shù)據(jù)中心中獲取數(shù)據(jù)中心中的可用資源。具體可以采用向每一個數(shù)據(jù)中心發(fā)送查詢可用資源的指令的方式來獲取,并對 每一個數(shù)據(jù)中心的可用資源進(jìn)行整合。
每一個數(shù)據(jù)中心包括服務(wù)器和一個或多個資源所在的設(shè)備。在每一個數(shù)據(jù)中心中,可以在數(shù)據(jù)中心的服務(wù)器中采用虛擬資源容器(vrc,virtualresourcecontainer)將相同種類的資源進(jìn)行歸類,形成虛擬資源列表,虛擬資源列表中的每一個表項(xiàng)包括每一種資源的可用狀態(tài),即該種資源在當(dāng)前是否可用。
每一個數(shù)據(jù)中心能夠自動檢測資源的動態(tài)加入和退出,例如資源所在的設(shè)備的啟動與關(guān)閉等。當(dāng)檢測到資源的動態(tài)加入和退出時,數(shù)據(jù)中心的服務(wù)器自動更新vrc中的虛擬資源列表。
vrc通過提前預(yù)留接口接收來自聯(lián)合服務(wù)器的查詢可用資源的指令,并通過提前預(yù)留接口將自身的可用的資源返回給聯(lián)合服務(wù)器。
步驟101、聯(lián)合服務(wù)器判斷出不存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心,根據(jù)獲得的多個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求。
本步驟中,預(yù)設(shè)條件包括數(shù)據(jù)中心的可用資源中包括預(yù)留請求中的全部資源。
本步驟中,簡單預(yù)留請求包括:預(yù)留開始時間、預(yù)留結(jié)束時間、qos需求參數(shù)、請求預(yù)留的資源。
其中,簡單預(yù)留請求中請求預(yù)留的資源為預(yù)留請求中請求預(yù)留的資源的一部分。
本步驟中,根據(jù)獲得的多個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求時,可以根據(jù)預(yù)留請求中的資源的種類分別查看每一個數(shù)據(jù)中心中是否有可用資源。例如,預(yù)留請求中包括計算資源、存儲資源、網(wǎng)絡(luò)資源,則可以將預(yù)留請求分解多三個簡單預(yù)留請求,分別為計算資源對應(yīng)的簡單預(yù)留請求、存儲資源對應(yīng)的簡單預(yù)留請求、網(wǎng)絡(luò)資源對應(yīng)的簡單預(yù)留請求,然后根據(jù)每一個數(shù)據(jù)中心中的可用資源判斷每一個數(shù)據(jù)中心是否有可用的請求的計算資源、可用的請求的存儲資源、可用的請求的網(wǎng)絡(luò)資源,如果有,則將分解后的簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心。
對于每一個簡單預(yù)留請求中請求的資源,如果有多個數(shù)據(jù)中心均有可用的請求的資源,可以按照公式
其中,ε2為所述偏差程度,m2為所述預(yù)留請求中的一種資源包含的需求參數(shù)的個數(shù),q2i2為所述數(shù)據(jù)中心中的一種資源的第i2個需求參數(shù),r2i2為所述預(yù)留請求中的一種資源的第i2個需求參數(shù)。
例如,計算資源的需求參數(shù)包括cpu核數(shù)和內(nèi)存大小,則m取2,存儲資源的需求參數(shù)包括存儲空間大小,則m取1。
步驟102、聯(lián)合服務(wù)器將每一個簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心的服務(wù)器。
本步驟中,每一個數(shù)據(jù)中心的服務(wù)器接收到簡單預(yù)留請求后,為用戶分配簡單預(yù)留請求中請求預(yù)留的資源,將分配的資源返回給聯(lián)合服務(wù)器。
步驟103、聯(lián)合服務(wù)器向用戶返回接收到的來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源。
通過本發(fā)明實(shí)施例的方案,通過聯(lián)合服務(wù)器實(shí)現(xiàn)多個數(shù)據(jù)中心的可用資源的請求,在一個數(shù)據(jù)中心資源不足時,從多個數(shù)據(jù)中心中為用戶分配資源,降低了預(yù)留請求的拒絕率。
可選的,該方法還包括:
當(dāng)聯(lián)合服務(wù)器判斷出存在滿足預(yù)設(shè)條件的一個或多個數(shù)據(jù)中心時,聯(lián)合服務(wù)器將預(yù)留請求發(fā)送給滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器;聯(lián)合服務(wù)器向用戶返回接收到的來自滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源。
其中,可以將預(yù)留請求發(fā)送給滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的任意一個服務(wù)器,也可以將預(yù)留請求發(fā)送給滿足預(yù)設(shè)條件的數(shù)據(jù)中心中空閑資源最多的一個數(shù)據(jù)中心。
或者,聯(lián)合服務(wù)器按照公式
其中,ε1為所述偏差程度,m1為所述預(yù)留請求中的資源包含的需求參數(shù)的個數(shù),q1i1為所述數(shù)據(jù)中心中的資源的第i1個需求參數(shù),r1i1為所述預(yù)留請求中的資源的第i1個需求參數(shù)。
可選的,該方法還包括:
聯(lián)合服務(wù)器接收到來自用戶的預(yù)留請求時,將用戶的提前預(yù)留狀態(tài)設(shè)置為請求預(yù)留協(xié)商狀態(tài);聯(lián)合服務(wù)器向用戶返回分配的資源后,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)。
圖3為本發(fā)明實(shí)施例用戶的提前預(yù)留狀態(tài)變化示意圖。如圖3所示,當(dāng)聯(lián)合服務(wù)器接收到來自用戶的預(yù)留請求時,用戶的提前預(yù)留狀態(tài)為請求預(yù)留協(xié)商狀態(tài);聯(lián)合服務(wù)器向用戶返回分配的資源后,即成功協(xié)商,用戶的提前預(yù)留狀態(tài)變更為預(yù)定狀態(tài)。
可選的,該方法還包括:
聯(lián)合服務(wù)器向用戶返回分配的資源后,生成預(yù)留消息并放入預(yù)留隊(duì)列中;當(dāng)預(yù)留消息中的預(yù)留開始時間到達(dá)時,聯(lián)合服務(wù)器判斷出預(yù)留消息中分配的資源均可用,將用戶的提前預(yù)留狀態(tài)更改為活躍狀態(tài),通知用戶已綁定所需資源,通知分配資源的服務(wù)器將分配給所述用戶的資源置為不可用。
可選的,當(dāng)預(yù)留消息中的預(yù)留開始時間到達(dá)時,如果判斷出用戶當(dāng)前的提前預(yù)留狀態(tài)為預(yù)定狀態(tài),則判斷預(yù)留消息中分配的資源是否可用,并繼續(xù)執(zhí)行后續(xù)流程。
其中,如果判斷出用戶當(dāng)前的提前預(yù)留狀態(tài)為終止?fàn)顟B(tài)或撤銷狀態(tài),則結(jié)束本流程。
如圖3所示,預(yù)留開始時間到達(dá)時,用戶的提前預(yù)留狀態(tài)變更為活躍狀態(tài)。
其中,預(yù)留消息包括預(yù)留開始時間、預(yù)留結(jié)束時間、qos需求參數(shù)、預(yù)留類型、預(yù)留標(biāo)識、每一個數(shù)據(jù)中心分配的資源。
其中,預(yù)留類型規(guī)定了預(yù)留消息是簡單預(yù)留消息還是聯(lián)合預(yù)留消息,簡單預(yù)留消息只需一個數(shù)據(jù)中心的資源即可完成,聯(lián)合預(yù)留消息則需多個數(shù)據(jù)中心的資源協(xié)同完成。
預(yù)留標(biāo)識為聯(lián)合服務(wù)器向用戶返回分配的資源后為用戶分配的標(biāo)識。
其中,當(dāng)預(yù)留消息中的預(yù)留開始時間到達(dá)時,聯(lián)合服務(wù)器重新獲取每一個數(shù)據(jù)中心可用的資源,根據(jù)重新獲得的可用的資源判斷分配的資源是否可用,即在重新獲得的可用的資源中查找是否存在分配的資源。
采用上述方法后,聯(lián)合服務(wù)器可以采用并行的方法處理預(yù)留請求,提高處理速度,從而提高用戶的體驗(yàn)度。
可選的,該方法還包括:
當(dāng)聯(lián)合服務(wù)器判斷出預(yù)留消息中分配的資源中的部分或全部資源不可用時,聯(lián)合服務(wù)器繼續(xù)執(zhí)行獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
可選的,該方法還包括:
當(dāng)預(yù)留消息中的預(yù)留結(jié)束時間到達(dá)時,聯(lián)合服務(wù)器將用戶的提取預(yù)留狀態(tài)更改為完成狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給用戶的資源;
或者,當(dāng)聯(lián)合服務(wù)器判斷出滿足預(yù)設(shè)終止條件時,聯(lián)合服務(wù)器將用戶的提前預(yù)留狀態(tài)更改為終止?fàn)顟B(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給用戶的資源。
其中,聯(lián)合服務(wù)器判斷出滿足預(yù)設(shè)終止條件包括:
聯(lián)合服務(wù)器接收到來自用戶的終止請求。
或者,可以預(yù)先在聯(lián)合服務(wù)器中設(shè)置終止條件,當(dāng)滿足時,則將用戶的提前預(yù)留狀態(tài)更改為終止?fàn)顟B(tài)。終止條件可以是任意條件。
可選的,該方法還包括:
聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求,繼續(xù)執(zhí)行獲取一個或多個 數(shù)據(jù)中心中的可用資源的步驟。
其中,在判斷是否存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心時,應(yīng)判斷數(shù)據(jù)中心的可用資源中是否包括修改預(yù)留請求中的全部資源。
可選的,該方法還包括:
聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求后,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定重協(xié)商狀態(tài)或活躍重協(xié)商狀態(tài);聯(lián)合服務(wù)器向用戶返回重新協(xié)商后分配的資源后,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)或活躍狀態(tài)。
具體的,當(dāng)用戶的提前預(yù)留狀態(tài)在聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求之前為預(yù)定狀態(tài)時,聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求后,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定重協(xié)商狀態(tài);聯(lián)合服務(wù)器向用戶返回重新協(xié)商后分配的資源后,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)。
當(dāng)用戶的提前預(yù)留狀態(tài)在聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求之前為活躍狀態(tài)時,聯(lián)合服務(wù)器接收到來自用戶的修改預(yù)留請求后,將用戶的提前預(yù)留狀態(tài)更改為活躍重協(xié)商狀態(tài);聯(lián)合服務(wù)器向用戶返回重新協(xié)商后分配的資源后,將用戶的提前預(yù)留狀態(tài)更改為活躍狀態(tài)。
可選的,該方法還包括:
聯(lián)合服務(wù)器接收到來自用戶的撤銷請求,將用戶的提前預(yù)留狀態(tài)更改為撤銷狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
可選的,該方法還包括:
當(dāng)聯(lián)合服務(wù)器判斷出所有數(shù)據(jù)中心的可用資源不包括預(yù)留請求中的全部資源時,聯(lián)合服務(wù)器向用戶返回拒絕消息。
可選的,聯(lián)合服務(wù)器將用戶的提前預(yù)留狀態(tài)更改為拒絕狀態(tài)。
參見圖4,本發(fā)明實(shí)施例還提出了一種實(shí)現(xiàn)資源預(yù)留的裝置,包括:
獲取模塊,用于接收到來自用戶的預(yù)留請求,獲取多個數(shù)據(jù)中心中的可用資源;接收到來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源;
處理模塊,用于判斷出不存在滿足預(yù)設(shè)條件的數(shù)據(jù)中心,根據(jù)獲得的多 個數(shù)據(jù)中心中的可用資源將預(yù)留請求分解為多個數(shù)據(jù)中心對應(yīng)的簡單預(yù)留請求;其中,預(yù)設(shè)條件包括數(shù)據(jù)中心的可用資源中包括預(yù)留請求中的全部資源;將每一個簡單預(yù)留請求發(fā)送給對應(yīng)的數(shù)據(jù)中心的服務(wù)器;
返回模塊,用于向用戶返回接收到的來自多個數(shù)據(jù)中心的服務(wù)器的分配的資源。
本發(fā)明實(shí)施例的裝置中,處理模塊還用于:
當(dāng)判斷出存在滿足預(yù)設(shè)條件的一個或多個數(shù)據(jù)中心時,聯(lián)合服務(wù)器將預(yù)留請求發(fā)送給滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器;
獲取模塊還用于:
接收到來自滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源;
返回模塊還用于:
向用戶返回接收到的來自滿足預(yù)設(shè)條件的數(shù)據(jù)中心中的一個的服務(wù)器的分配的資源。
本發(fā)明實(shí)施例的裝置中,處理模塊還用于:
將用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)。
本發(fā)明實(shí)施例的裝置中,返回模塊還用于:
向用戶返回分配的資源后,向處理模塊發(fā)送第一通知消息;
處理模塊還用于:
接收到第一通知消息,生成預(yù)留消息并放入預(yù)留隊(duì)列中;當(dāng)預(yù)留消息中的預(yù)留開始時間到達(dá)時,判斷出預(yù)留消息中分配的資源均可用,將用戶的提前預(yù)留狀態(tài)更改為活躍狀態(tài),通知用戶已綁定所需資源,通知分配資源的數(shù)據(jù)中心將分配給所述用戶的資源置為不可用。
本發(fā)明實(shí)施例的裝置中,處理模塊還用于:
當(dāng)判斷出預(yù)留消息中分配的資源中的部分或全部資源不可用時,向獲取模塊發(fā)送第二通知消息;
獲取模塊還用于:
接收到第二通知消息,繼續(xù)執(zhí)行獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
本發(fā)明實(shí)施例的裝置中,處理模塊還用于:
當(dāng)預(yù)留消息中的預(yù)留結(jié)束時間到達(dá)時,將用戶的提前預(yù)留狀態(tài)更改為完成狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源;
或者,當(dāng)聯(lián)合服務(wù)器判斷出滿足預(yù)設(shè)終止條件時,將用戶的提前預(yù)留狀態(tài)更改為終止?fàn)顟B(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
本發(fā)明實(shí)施例的裝置中,獲取模塊還用于:
接收到來自用戶的修改預(yù)留請求,繼續(xù)執(zhí)行獲取一個或多個數(shù)據(jù)中心中的可用資源的步驟。
本發(fā)明實(shí)施例的裝置中,獲取模塊還用于:
接收到來自用戶的修改預(yù)留請求后,向處理模塊發(fā)送第三通知消息;
返回模塊還用于:
向用戶返回重新協(xié)商后分配的資源后,向處理模塊發(fā)送第四通知消息;
處理模塊還用于:
接收到第三通知消息,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定重協(xié)商狀態(tài)或活躍重協(xié)商狀態(tài);接收到第四通知消息,將用戶的提前預(yù)留狀態(tài)更改為預(yù)定狀態(tài)或活躍狀態(tài)。
本發(fā)明實(shí)施例的裝置中,獲取模塊還用于:
接收到來自用戶的撤銷請求,向處理模塊發(fā)送第五通知消息;
處理模塊還用于:
接收到第五通知消息,將用戶的提前預(yù)留狀態(tài)更改為撤銷狀態(tài),并通知分配資源的數(shù)據(jù)中心釋放分配給所述用戶的資源。
需要說明的是,以上所述的實(shí)施例僅是為了便于本領(lǐng)域的技術(shù)人員理解 而已,并不用于限制本發(fā)明的保護(hù)范圍,在不脫離本發(fā)明的發(fā)明構(gòu)思的前提下,本領(lǐng)域技術(shù)人員對本發(fā)明所做出的任何顯而易見的替換和改進(jìn)等均在本發(fā)明的保護(hù)范圍之內(nèi)。