一種資源分配方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種資源分配方法、裝置及系統(tǒng),方法包括:構(gòu)建資源分配鏈表以記錄目標(biāo)緩存服務(wù)器系統(tǒng)中服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中端口的端口號及當(dāng)前端口的分配狀態(tài);接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;查詢資源分配鏈表,確定對應(yīng)緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口;向每一個目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。通過本發(fā)明的技術(shù)方案,可提高緩存服務(wù)器系統(tǒng)的資源利用率。
【專利說明】
一種資源分配方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種資源分配方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,云計算作為一種基于互聯(lián)網(wǎng)的計算服務(wù)模式也得到廣泛的應(yīng)用,云計算平臺可根據(jù)用戶的實際業(yè)務(wù)需求為用戶提供數(shù)據(jù)緩存等服務(wù);具備高可靠性的海量數(shù)據(jù)緩存服務(wù)對于云計算平臺來說卻是一個巨大的挑戰(zhàn),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫往往很難滿足該需求,通常需要利用具備多個服務(wù)器節(jié)點的緩存服務(wù)器系統(tǒng)搭載Key-value數(shù)據(jù)庫(比如Redis)來實現(xiàn)高可靠性的海量數(shù)據(jù)緩存服務(wù)。
[0003]但是,由于Redis等Key-value數(shù)據(jù)庫沒有租戶概念及分布式計算功能,這導(dǎo)致搭載有Key-value數(shù)據(jù)庫的緩存服務(wù)器系統(tǒng)無法向其他用戶提供緩存服務(wù),服務(wù)器系統(tǒng)的資源利用率較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種資源分配方法、裝置及系統(tǒng),可提高緩存服務(wù)器系統(tǒng)的資源利用率。
[0005]第一方面,本發(fā)明實施例提供了一種資源分配方法,包括:
[0006]S0:預(yù)先構(gòu)建資源分配鏈表,利用所述資源分配鏈表記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài);
[0007]S1:接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0008]S2:查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ;
[0009]S3:根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0010]優(yōu)選地,
[0011 ]在所述向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令之后,還包括:
[0012]向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。
[0013]優(yōu)選地,
[0014]所述查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,包括:
[0015]查詢所述資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài);
[0016]從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點;
[0017]將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。
[0018]優(yōu)選地,
[0019]所述緩存服務(wù)類型,包括:單節(jié)點緩存服務(wù)、主從節(jié)點緩存服務(wù)或多節(jié)點緩存服務(wù)。
[0020]優(yōu)選地,
[0021 ]在所述確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口之后,還包括:
[0022]在所述資源分配鏈表中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。
[0023]第二方面,本發(fā)明實施例提供了一種資源分配裝置,包括:
[0024]設(shè)置模塊,用于預(yù)先構(gòu)建資源分配鏈表,利用所述資源分配鏈表記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài);
[0025]指令接收模塊,用于接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0026]處理模塊,用于查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ;
[0027]指令發(fā)送模塊,用于根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0028]優(yōu)選地,
[0029]還包括:信息發(fā)送模塊,用于向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。
[0030]優(yōu)選地,
[0031]所述處理模塊,包括:
[0032]處理子單元,用于查詢所述資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài);
[0033]第一確定子單元,用于從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點;
[0034]第二確定子單元,用于將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。
[0035]優(yōu)選地,
[0036]還包括:鏈表更新模塊,用于在所述資源分配鏈表中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。
[0037]第三方面,本發(fā)明實施例提供了一種資源分配系統(tǒng),包括:
[0038]至少一個客戶端、目標(biāo)緩存服務(wù)器系統(tǒng)及如上述第二方面中任一所述的資源分配裝置;其中,所述目標(biāo)緩存服務(wù)器系統(tǒng)包括至少兩個服務(wù)器節(jié)點;
[0039]所述資源分配裝置分別連接每一個所述客戶端以及所述目標(biāo)緩存服務(wù)器系統(tǒng)中的每一個服務(wù)器節(jié)點;
[0040]所述客戶端,用于向所述資源分配裝置發(fā)送攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0041]所述服務(wù)器節(jié)點,用于接收所述資源分配裝置發(fā)送的資源分配請求指令,根據(jù)接收的資源分配請求指令中攜帶的目標(biāo)端口的端口號,啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0042]本發(fā)明實施例提供了一種資源分配方法、裝置及系統(tǒng),通過構(gòu)建資源分配鏈表以記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài),在接收到外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令時,可根據(jù)資源分配鏈表確定對應(yīng)該緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,進(jìn)而向確定的每一個目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶相應(yīng)端口號的資源分配請求指令,使得每一個目標(biāo)服務(wù)器分別根據(jù)接收的端口號啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程;綜上可見,當(dāng)目標(biāo)緩存服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點存在目標(biāo)端口處于未分配狀態(tài),且存在客戶端請求緩存服務(wù)時,即可將該服務(wù)器節(jié)點下處于未分配狀態(tài)的目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程對應(yīng)的分配給該客戶端;可提高緩存服務(wù)器系統(tǒng)的資源利用率。
【附圖說明】
[0043]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0044]圖1是本發(fā)明一實施例提供的一種資源分配方法的流程圖;
[0045]圖2是本發(fā)明一實施例提供的另一種資源分配方法的流程圖;
[0046]圖3是本發(fā)明一實施例提供的一種資源分配裝置的結(jié)構(gòu)圖;
[0047]圖4是本發(fā)明一實施例提供的另一種資源分配裝置的結(jié)構(gòu)圖;
[0048]圖5是本發(fā)明一實施例提供的又一種資源分配裝置的結(jié)構(gòu)圖;
[0049]圖6是本發(fā)明一實施例提供的一種資源分配系統(tǒng)的結(jié)構(gòu)圖。
【具體實施方式】
[0050]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0051]如圖1所示,本發(fā)明實施例提供了一種資源分配方法,包括:
[0052]S0:預(yù)先構(gòu)建資源分配鏈表,利用所述資源分配鏈表記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài);
[0053]S1:接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0054]S2:查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ;
[0055]S3:根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0056]本發(fā)明上述實施例中,通過構(gòu)建資源分配鏈表以記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài),在接收到外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令時,可根據(jù)資源分配鏈表確定對應(yīng)該緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,進(jìn)而向確定的每一個目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶相應(yīng)端口號的資源分配請求指令,使得每一個目標(biāo)服務(wù)器分別根據(jù)接收的端口號啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程;綜上可見,當(dāng)目標(biāo)緩存服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點存在目標(biāo)端口處于未分配狀態(tài),且存在客戶端請求緩存服務(wù)時,即可將該服務(wù)器節(jié)點下處于未分配狀態(tài)的目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程對應(yīng)的分配給該客戶端;可提高緩存服務(wù)器系統(tǒng)的資源利用率。
[0057]本發(fā)明上述實施例中,通過服務(wù)器節(jié)點的端口可以為客戶端提供對應(yīng)當(dāng)前客戶端的緩存服務(wù)進(jìn)程,即通過不同的端口可向不同的客戶端提供緩存服務(wù)資源,避免緩存服務(wù)器系統(tǒng)搭載Redis等Key-value數(shù)據(jù)庫時,即使緩存服務(wù)器系統(tǒng)存在空閑緩存資源也無法向多個客戶端提供緩存服務(wù),造成緩存服務(wù)器系統(tǒng)的資源浪費。
[0058]進(jìn)一步的,為了使客戶端能夠訪問為其分配的服務(wù)器節(jié)點,并調(diào)用該服務(wù)器節(jié)點中對應(yīng)當(dāng)前客戶端的緩存服務(wù)進(jìn)程,本發(fā)明一個優(yōu)選實施例中,在所述向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令之后,還包括:
[0059]向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。
[0060]本發(fā)明上述實施例中,同一個服務(wù)器節(jié)點可以包括多個端口,不同客戶端對應(yīng)的緩存服務(wù)進(jìn)程對應(yīng)不同的端口,即不同客戶端可通過不同的端口訪問同一個服務(wù)器節(jié)點中對應(yīng)當(dāng)前客戶端的緩存服務(wù)進(jìn)程,實現(xiàn)對不同客戶端在同一個服務(wù)器節(jié)點中分別對應(yīng)的緩存服務(wù)進(jìn)程進(jìn)行隔離,即實現(xiàn)對不同客戶端分別對應(yīng)的緩存資源進(jìn)行隔離。
[0061]本發(fā)明一個優(yōu)選實施例中,所述緩存服務(wù)類型,包括:單節(jié)點緩存服務(wù)、主從節(jié)點緩存服務(wù)或多節(jié)點緩存服務(wù)。
[0062]相應(yīng)的,由于目標(biāo)緩存服務(wù)器系統(tǒng)中可能存在多個服務(wù)器節(jié)點下的多個端口均處于未分配狀態(tài),而不同的緩存服務(wù)類型需要的服務(wù)器節(jié)點的數(shù)量并不相同,比如,單節(jié)點緩存服務(wù)僅需要一個服務(wù)器節(jié)點,主從節(jié)點緩存服務(wù)僅需要兩個服務(wù)器節(jié)點,而多節(jié)點緩存服務(wù)可根據(jù)實際業(yè)務(wù)需求選擇合適數(shù)量的服務(wù)器節(jié)點;因此,本發(fā)明一個優(yōu)選實施例中,所述查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,包括:
[0063]查詢所述資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài);
[0064]從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點;
[0065]將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。
[0066]進(jìn)一步的,為了避免同一個服務(wù)器節(jié)點下的同一個端口被重復(fù)分配給多個不同的客戶端,本發(fā)明一個優(yōu)選實施例中,在所述確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口之后,還包括:
[0067]在所述資源分配鏈表中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。
[0068]本發(fā)明上述實施例中,不同的緩存服務(wù)器進(jìn)程對應(yīng)不同的端口,在當(dāng)前端口已經(jīng)處于被分配狀態(tài)后,當(dāng)前端口對應(yīng)的緩存服務(wù)進(jìn)程則不能被分配給其他客戶端,實現(xiàn)對不同客戶端在相同服務(wù)器節(jié)點中對應(yīng)的不同緩存服務(wù)進(jìn)程進(jìn)行隔離。
[0069]如圖2所述,本發(fā)明實施例提供了一種資源分配方法,以將緩存服務(wù)器系統(tǒng)中的空閑緩存資源分配給其他申請緩存服務(wù)的客戶端為例,該方法可以包括如下步驟:
[0070]步驟201,預(yù)先構(gòu)建目標(biāo)緩存服務(wù)器系統(tǒng)對應(yīng)的資源分配鏈表。
[0071]本發(fā)明實施例中,資源分配鏈表用于記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài)。
[0072]步驟202,接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令。
[0073]這里,緩存服務(wù)類型可以包括單節(jié)點緩存服務(wù)、主從節(jié)點緩存服務(wù)或多節(jié)點緩存服務(wù)。
[0074]步驟203,查詢資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點。
[0075]這里,標(biāo)準(zhǔn)服務(wù)器節(jié)點下應(yīng)當(dāng)存在至少一個端口處于未分配狀態(tài)。
[0076]舉例來說,當(dāng)目標(biāo)緩存服務(wù)器系統(tǒng)包括服務(wù)器節(jié)點A、B、C、D,且服務(wù)器節(jié)點A包括端口 al、a2和a3,服務(wù)器節(jié)點B包括端口 bl和b2,服務(wù)器節(jié)點C包括cl和c2,服務(wù)器節(jié)點D包括端口d;在端口al、bl、cl和d處于已分配狀態(tài)時,即端口al、bl、cl和d對應(yīng)的緩存服務(wù)進(jìn)程已經(jīng)被分配給其他客戶端時,服務(wù)器節(jié)點A、B、C下存在空閑緩存資源,這里,即可分別將服務(wù)器節(jié)點A、B、C確定為標(biāo)準(zhǔn)服務(wù)器節(jié)點。
[0077]步驟204,從至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點。
[0078]舉例來說,當(dāng)緩存服務(wù)類型為單節(jié)點緩存服務(wù)器時,則可將服務(wù)器節(jié)點A、B、C中的任一個確定為目標(biāo)服務(wù)器節(jié)點;當(dāng)緩存服務(wù)器類型為主從節(jié)點緩存服務(wù)時,可將服務(wù)器節(jié)點A、B、C中的任意兩個分別確定為目標(biāo)服務(wù)器節(jié)點;當(dāng)緩存服務(wù)類型為多節(jié)點緩存服務(wù)時,則可將服務(wù)器節(jié)點A、B、C中的任意兩個或三個同時確定為目標(biāo)服務(wù)器節(jié)點。
[0079]步驟205,將每一個目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。
[0080]舉例來說,當(dāng)緩存服務(wù)類型為主從節(jié)點緩存服務(wù),且確定的目標(biāo)服務(wù)器節(jié)點為服務(wù)器節(jié)點A和服務(wù)器節(jié)點B時,則可將服務(wù)器節(jié)點A下的端口 a2或a3確定為目標(biāo)端口,將服務(wù)器節(jié)點B下的端口 b2確定為目標(biāo)端口。
[0081 ]步驟206,根據(jù)每一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令。
[0082]舉例來說,當(dāng)目標(biāo)服務(wù)器節(jié)點A中的端口a2和目標(biāo)服務(wù)器節(jié)點B中的端口 b2被確定為目標(biāo)端口時,則可向目標(biāo)服務(wù)器節(jié)點A發(fā)送攜帶目標(biāo)端口 a2的端口號的資源分配請求指令,向目標(biāo)服務(wù)器節(jié)點B發(fā)送攜帶目標(biāo)端口b2的端口號的資源分配請求指令。
[0083]相應(yīng)的,目標(biāo)服務(wù)器節(jié)點A在接收到攜帶目標(biāo)端口a2的端口號的資源分配請求指令后,即可根據(jù)目標(biāo)端口a2的端口號啟動并運行目標(biāo)端口a2對應(yīng)的緩存服務(wù)進(jìn)程;目標(biāo)服務(wù)器節(jié)點B在接收到攜帶目標(biāo)端口 b2的端口號的資源分配請求指令后,即可根據(jù)目標(biāo)端口b2的端口號啟動并運行目標(biāo)端口b2對應(yīng)的緩存服務(wù)進(jìn)程。
[0084]步驟207,在資源分配鏈表中,將目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。
[0085]這里,即在資源分配鏈表中將目標(biāo)端口 a2和目標(biāo)端口 b2分別對應(yīng)的分配狀態(tài)從未分配狀態(tài)更新為已分配狀態(tài);如此,避免將已分配給相應(yīng)客戶端的端口被重復(fù)分配給不同的客戶端;同時,為不同的客戶端分配不同的端口號,實現(xiàn)對不同客戶端在相同服務(wù)器節(jié)點中對應(yīng)的不同緩存服務(wù)進(jìn)程進(jìn)行隔離。
[0086]步驟208,向外部客戶端發(fā)送至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號。
[0087]這里,即將目標(biāo)服務(wù)器節(jié)點A和目標(biāo)服務(wù)器節(jié)點B分別對應(yīng)的標(biāo)識信息,以及目標(biāo)端口 a2和目標(biāo)端口 b2分別對應(yīng)的端口號發(fā)送至客戶端。
[0088]步驟209,客戶端根據(jù)接收的至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。
[0089]本發(fā)明實施例中,客戶端可根據(jù)接收的目標(biāo)服務(wù)器節(jié)點A的標(biāo)識信息及目標(biāo)端口a2的端口號,訪問并調(diào)用目標(biāo)服務(wù)器節(jié)點A中運行的對應(yīng)目標(biāo)端口 a2的緩存服務(wù)進(jìn)程;根據(jù)接收的目標(biāo)服務(wù)器節(jié)點B的標(biāo)識信息及目標(biāo)端口 b2的端口號,訪問并調(diào)用目標(biāo)服務(wù)器節(jié)點B中運行的對應(yīng)目標(biāo)端口 b2的緩存服務(wù)進(jìn)程。
[0090]如圖3所示,本發(fā)明實施例提供了一種資源分配裝置,包括:
[0091 ]設(shè)置模塊301,用于預(yù)先構(gòu)建資源分配鏈表302,利用所述資源分配鏈表302記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài);
[0092]指令接收模塊303,用于接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0093]處理模塊304,用于查詢所述資源分配鏈表302,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ;
[0094]指令發(fā)送模塊305,用于根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0095]進(jìn)一步的,為了使客戶端能夠訪問為其分配的服務(wù)器節(jié)點,并調(diào)用該服務(wù)器節(jié)點中運行的對應(yīng)當(dāng)前客戶端的緩存服務(wù)器進(jìn)程,如圖4所示,本發(fā)明一個優(yōu)選實施例中,還包括:信息發(fā)送模塊401,用于向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。
[0096]進(jìn)一步的,如圖5所示,本發(fā)明一個優(yōu)選實施例中,所述處理模塊304,包括:
[0097]處理子單元3041,用于查詢所述資源分配鏈表302,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài);
[0098]第一確定子單元3042,用于從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點;
[0099]第二確定子單元3043,用于將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。
[0100]進(jìn)一步的,為了避免同一個服務(wù)器節(jié)點中的同一個端口被重復(fù)分配給多個客戶端,本發(fā)明一個優(yōu)選實施例中,還包括:鏈表更新模塊(附圖中未示出),用于在所述資源分配鏈表302中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。
[0101]如圖6所示,本發(fā)明實施例提供了一種資源分配系統(tǒng),包括:
[0102]至少一個客戶端601、目標(biāo)緩存服務(wù)器系統(tǒng)602及如上述實施例中任一所述的資源分配裝置603;其中,所述目標(biāo)緩存服務(wù)器系統(tǒng)602包括至少兩個服務(wù)器節(jié)點6021;
[0103]所述資源分配裝置603分別連接每一個所述客戶端601以及所述目標(biāo)緩存服務(wù)器系統(tǒng)602中的每一個服務(wù)器節(jié)點6021;
[0104]所述客戶端601,用于向所述資源分配裝置603發(fā)送攜帶緩存服務(wù)類型的緩存服務(wù)請求指令;
[0105]所述服務(wù)器節(jié)點6021,用于接收所述資源分配裝置603發(fā)送的資源分配請求指令,根據(jù)接收的資源分配請求指令中攜帶的目標(biāo)端口的端口號,啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
[0106]上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0107]綜上所述,本發(fā)明各個實施例至少具有如下有益效果:
[0108]1、通過構(gòu)建資源分配鏈表以記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài),在接收到外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令時,可根據(jù)資源分配鏈表確定對應(yīng)該緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,進(jìn)而向確定的每一個目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶相應(yīng)端口號的資源分配請求指令,使得每一個目標(biāo)服務(wù)器分別根據(jù)接收的端口號啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程;綜上可見,當(dāng)目標(biāo)緩存服務(wù)器系統(tǒng)中的服務(wù)器節(jié)點存在目標(biāo)端口處于未分配狀態(tài),且存在客戶端請求緩存服務(wù)時,即可將該服務(wù)器節(jié)點下處于未分配狀態(tài)的目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程對應(yīng)的分配給該客戶端;可提高緩存服務(wù)器系統(tǒng)的資源利用率。
[0109]2、本發(fā)明一實施例中,同一個服務(wù)器節(jié)點可以包括多個端口,不同客戶端對應(yīng)的緩存服務(wù)進(jìn)程對應(yīng)不同的端口,即不同客戶端可通過不同的端口訪問同一個服務(wù)器節(jié)點中對應(yīng)當(dāng)前客戶端的緩存服務(wù)進(jìn)程,實現(xiàn)對不同客戶端在同一個服務(wù)器節(jié)點中分別對應(yīng)的緩存服務(wù)進(jìn)程進(jìn)行隔離,即實現(xiàn)對不同客戶端分別對應(yīng)的緩存資源進(jìn)行隔離。
[0110]3、本發(fā)明一實施例中,通過將目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài),可避免已分配給相應(yīng)客戶端的端口被重復(fù)分配給多個客戶端;同時,為不同的客戶端分配不同的端口號,實現(xiàn)對不同客戶端在相同服務(wù)器節(jié)點中對應(yīng)的不同緩存服務(wù)進(jìn)程進(jìn)行隔離。
[0111]需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
[0112]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機(jī)可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
[0113]最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.一種資源分配方法,其特征在于,包括: 預(yù)先構(gòu)建資源分配鏈表,利用所述資源分配鏈表記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài); 接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令; 查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ; 根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。2.根據(jù)權(quán)利要求1所述的資源分配方法,其特征在于, 在所述向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令之后,還包括: 向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。3.根據(jù)權(quán)利要求1所述的資源分配方法,其特征在于,所述查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口,包括: 查詢所述資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài); 從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點; 將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。4.根據(jù)權(quán)利要求1所述的資源分配方法,其特征在于, 所述緩存服務(wù)類型,包括:單節(jié)點緩存服務(wù)、主從節(jié)點緩存服務(wù)或多節(jié)點緩存服務(wù)。5.根據(jù)權(quán)利要求1至4中任一所述的方法,其特征在于, 在所述確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口之后,還包括: 在所述資源分配鏈表中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。6.一種資源分配裝置,其特征在于,包括: 設(shè)置模塊,用于預(yù)先構(gòu)建資源分配鏈表,利用所述資源分配鏈表記錄目標(biāo)緩存服務(wù)器系統(tǒng)中至少兩個服務(wù)器節(jié)點的標(biāo)識信息,當(dāng)前服務(wù)器節(jié)點中至少一個端口的端口號及當(dāng)前端口的分配狀態(tài); 指令接收模塊,用于接收外部客戶端發(fā)送的攜帶緩存服務(wù)類型的緩存服務(wù)請求指令; 處理模塊,用于查詢所述資源分配鏈表,確定對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點,以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下處于未分配狀態(tài)的一個目標(biāo)端口 ; 指令發(fā)送模塊,用于根據(jù)每一個所述目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息,向每一個所述目標(biāo)服務(wù)器節(jié)點分別發(fā)送攜帶當(dāng)前目標(biāo)服務(wù)器節(jié)點中目標(biāo)端口的端口號的資源分配請求指令,以使每一個所述目標(biāo)服務(wù)器節(jié)點分別根據(jù)接收的資源分配請求指令中攜帶的端口號,啟動所述目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。7.根據(jù)權(quán)利要求6所述的資源分配裝置,其特征在于, 還包括:信息發(fā)送模塊,用于向外部客戶端發(fā)送所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號,以使外部客戶端根據(jù)接收的所述至少一個目標(biāo)服務(wù)器節(jié)點分別對應(yīng)的標(biāo)識信息以及當(dāng)前目標(biāo)服務(wù)器節(jié)點下的目標(biāo)端口的端口號調(diào)用所述至少一個目標(biāo)服務(wù)器中運行的緩存服務(wù)進(jìn)程。8.根據(jù)權(quán)利要求6所述的資源分配裝置,其特征在于, 所述處理模塊,包括: 處理子單元,用于查詢所述資源分配鏈表,確定至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點,其中,所述標(biāo)準(zhǔn)服務(wù)器節(jié)點下存在至少一個端口處于未分配狀態(tài); 第一確定子單元,用于從所述至少一個標(biāo)準(zhǔn)服務(wù)器節(jié)點中確定出對應(yīng)所述緩存服務(wù)類型的至少一個目標(biāo)服務(wù)器節(jié)點; 第二確定子單元,用于將每一個所述目標(biāo)服務(wù)器節(jié)點下的一個處于未分配狀態(tài)的端口確定為目標(biāo)端口。9.根據(jù)權(quán)利要求6至8中任一所述的資源分配裝置,其特征在于, 還包括:鏈表更新模塊,用于在所述資源分配鏈表中,將所述目標(biāo)端口的分配狀態(tài)更新為已分配狀態(tài)。10.一種資源分配系統(tǒng),其特征在于,包括: 至少一個客戶端、目標(biāo)緩存服務(wù)器系統(tǒng)及如上述權(quán)利要求6至9中任一所述的資源分配裝置;其中,所述目標(biāo)緩存服務(wù)器系統(tǒng)包括至少兩個服務(wù)器節(jié)點; 所述資源分配裝置分別連接每一個所述客戶端以及所述目標(biāo)緩存服務(wù)器系統(tǒng)中的每一個服務(wù)器節(jié)點; 所述客戶端,用于向所述資源分配裝置發(fā)送攜帶緩存服務(wù)類型的緩存服務(wù)請求指令; 所述服務(wù)器節(jié)點,用于接收所述資源分配裝置發(fā)送的資源分配請求指令,根據(jù)接收的資源分配請求指令中攜帶的目標(biāo)端口的端口號,啟動目標(biāo)端口對應(yīng)的緩存服務(wù)進(jìn)程。
【文檔編號】H04L12/24GK105978744SQ201610591518
【公開日】2016年9月28日
【申請日】2016年7月26日
【發(fā)明人】劉安, 張燁
【申請人】浪潮電子信息產(chǎn)業(yè)股份有限公司