專(zhuān)利名稱(chēng):分布式緩存管理系統(tǒng)和實(shí)現(xiàn)分布式緩存管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式緩存管理技術(shù)領(lǐng)域,具體而言,涉及一種分布式緩存管理系統(tǒng)和一種實(shí)現(xiàn)分布式緩存管理的方法。
背景技術(shù):
在B2C電商實(shí)踐中,為了改善用戶(hù)瀏覽圖片的速度,但同時(shí)減少圖片存儲(chǔ)服務(wù)器的訪問(wèn)壓力,采用了 Memcached (分布式內(nèi)存對(duì)象緩存服務(wù)器)實(shí)現(xiàn)cache (高速緩沖存儲(chǔ)器)集群,達(dá)到分擔(dān)來(lái)自前端的請(qǐng)求。在運(yùn)營(yíng)的過(guò)程中,隨著Memcached中實(shí)例的不斷增加,開(kāi)始出現(xiàn)以下問(wèn)題I · η臺(tái)分布的Memcached做實(shí)際數(shù)據(jù)的存儲(chǔ),每臺(tái)Memcached存放數(shù)據(jù)總量的一個(gè)子集(分布算法Key映射整數(shù)值,再根據(jù)已有server數(shù)取模),隨著Memcached實(shí)例數(shù)量的增加,管理、維護(hù)的難度也相應(yīng)增加; 2.新增X臺(tái)Memcached進(jìn)行擴(kuò)容,已有數(shù)據(jù)需要作大規(guī)模遷移,且同時(shí)一定時(shí)間內(nèi)cache命中較低;3.如有Memcached服務(wù)異常退出,如不能迅速拉起,會(huì)影響前端訪問(wèn)的體驗(yàn),或者可能導(dǎo)致數(shù)據(jù)分布的重計(jì)算,使得Memcached的SLA(Service-Level Agreement,服務(wù)等級(jí)協(xié)議)級(jí)別較低;4.因?yàn)槿狈y(tǒng)一分配、管理機(jī)制,可能會(huì)存在數(shù)據(jù)在多個(gè)Memcached存在實(shí)例的情況,導(dǎo)致數(shù)據(jù)不一致或不同版本數(shù)據(jù)沖突的情況。因此,需要一種新的分布式緩存管理技術(shù),可以對(duì)分布式內(nèi)存對(duì)象緩存服務(wù)器中的數(shù)據(jù)進(jìn)行有效管理,提高請(qǐng)求響應(yīng)和數(shù)據(jù)處理的效率。
發(fā)明內(nèi)容
本發(fā)明正是基于上述問(wèn)題,提出了一種新的分布式緩存管理技術(shù),可以對(duì)分布式內(nèi)存對(duì)象緩存服務(wù)器中的數(shù)據(jù)進(jìn)行有效管理,提高請(qǐng)求響應(yīng)和數(shù)據(jù)處理的效率。有鑒于此,本發(fā)明提出了一種分布式緩存管理系統(tǒng),包括索引服務(wù)器和分布式內(nèi)存對(duì)象緩存服務(wù)器,其中,所述索引服務(wù)器包括索引建立單元,用于根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引;數(shù)據(jù)獲取單元,用于根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,在分布式內(nèi)存對(duì)象緩存服務(wù)器的前端設(shè)置索引服務(wù)器,通過(guò)為緩存的數(shù)據(jù)建立索引,當(dāng)用戶(hù)希望獲取某個(gè)數(shù)據(jù)時(shí),能夠由索引服務(wù)器根據(jù)索引及時(shí)準(zhǔn)確地查找到該數(shù)據(jù),在緩存的數(shù)據(jù)量較大時(shí),依然能夠?qū)γ總€(gè)數(shù)據(jù)進(jìn)行有效管理,并提高數(shù)據(jù)查找效率。在由多臺(tái)分布式內(nèi)存對(duì)象緩存服務(wù)器構(gòu)成服務(wù)器集群時(shí),其中的部分服務(wù)器出現(xiàn)問(wèn)題時(shí),不會(huì)對(duì)其他的服務(wù)器造成影響,使得整個(gè)系統(tǒng)保持高可用性。在上述技術(shù)方案中,優(yōu)選地,所述索引服務(wù)器還包括數(shù)據(jù)判斷單元,用于根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則進(jìn)一步判斷所述需要緩存的數(shù)據(jù)的版本號(hào)是否高于所述已緩存數(shù)據(jù)的版本號(hào);數(shù)據(jù)替換單元,用于在所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)的情況下,將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。在該技術(shù)方案中,通過(guò)對(duì)數(shù)據(jù)版本號(hào)的比較,實(shí)現(xiàn)對(duì)于數(shù)據(jù)的更新,并避免出現(xiàn)低版本的數(shù)據(jù)對(duì)高版本數(shù)據(jù)的覆蓋。在上述任一技術(shù)方案中,優(yōu)選地,所述索引服務(wù)器還包括時(shí)間記錄單元,用于記錄建立索引的時(shí)間;以及存儲(chǔ)控制單元,用于在所述分布式內(nèi)存對(duì)象緩存服務(wù)器中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值的情況下,利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,對(duì)于已使用內(nèi)存容量不足的情況下,根據(jù)建立時(shí)間進(jìn)行新老替換,從而可以比較好地處理索引數(shù)量的不斷增加與有限的內(nèi)存容量之間的供需矛盾。在上述任一技術(shù)方案中,優(yōu)選地,所述分布式內(nèi)存對(duì)象緩存服務(wù)器的數(shù)量為多個(gè), 則所述索引服務(wù)器還包括位置確定單元,用于根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合所述分布式內(nèi)存對(duì)象緩存服務(wù)器的個(gè)數(shù)、容量、內(nèi)存空閑程度。在該技術(shù)方案中,不再按照Key取模的方式進(jìn)行處理,從而實(shí)現(xiàn)更好的負(fù)載均衡分配。在上述任一技術(shù)方案中,優(yōu)選地,通過(guò)多臺(tái)索引服務(wù)器實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的管理,其中,所述多臺(tái)索引服務(wù)器包括主服務(wù)器和從服務(wù)器在所述主服務(wù)器正常工作的情況下,所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備;在所述主服務(wù)器出現(xiàn)故障的情況下,由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及在所述主服務(wù)器恢復(fù)正常的情況下,從指定的索引服務(wù)器上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。在該技術(shù)方案中,通過(guò)設(shè)置主從式的索引服務(wù)器集群,從而在主服務(wù)器出現(xiàn)問(wèn)題時(shí),可以由從服務(wù)器進(jìn)行頂替;而主服務(wù)器在恢復(fù)正常后,也能夠及時(shí)通過(guò)對(duì)最新索引狀態(tài)信息的獲取,最快地重新恢復(fù)工作,把對(duì)系統(tǒng)運(yùn)行和用戶(hù)體驗(yàn)的影響降至最小。根據(jù)本發(fā)明的又一方面,還提出了一種實(shí)現(xiàn)分布式緩存管理的方法,包括步驟202,根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引;步驟204,根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,在分布式內(nèi)存對(duì)象緩存服務(wù)器的前端設(shè)置索引服務(wù)器,通過(guò)為緩存的數(shù)據(jù)建立索引,當(dāng)用戶(hù)希望獲取某個(gè)數(shù)據(jù)時(shí),能夠由索引服務(wù)器根據(jù)索引及時(shí)準(zhǔn)確地查找到該數(shù)據(jù),在緩存的數(shù)據(jù)量較大時(shí),依然能夠?qū)γ總€(gè)數(shù)據(jù)進(jìn)行有效管理,并提高數(shù)據(jù)查找效率。在由多臺(tái)分布式內(nèi)存對(duì)象緩存服務(wù)器構(gòu)成服務(wù)器集群時(shí),其中的部分服務(wù)器出現(xiàn)問(wèn)題時(shí),不會(huì)對(duì)其他的服務(wù)器造成影響,使得整個(gè)系統(tǒng)保持高可用性。在上述技術(shù)方案中,優(yōu)選地,所述步驟202還包括根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則當(dāng)所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)時(shí),將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。在該技術(shù)方案中,通過(guò)對(duì)數(shù)據(jù)版本號(hào)的比較,實(shí)現(xiàn)對(duì)于數(shù)據(jù)的更新,并避免出現(xiàn)低版本的數(shù)據(jù)對(duì)高版本數(shù)據(jù)的覆蓋。在上述任一技術(shù)方案中,優(yōu)選地,所述步驟202還包括記錄建立索引的時(shí)間;以及在所述分布式內(nèi)存對(duì)象緩存服務(wù)器中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值時(shí),利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,對(duì)于已使用內(nèi)存容量不足的情況下,根據(jù)建立時(shí)間進(jìn)行新老替換,從而可以比較好地處理索引數(shù)量的不斷增加與有限的內(nèi)存容量之間的供需矛盾。在上述任一技術(shù)方案中,優(yōu)選地,所述分布式內(nèi)存對(duì)象緩存服務(wù)器的數(shù)量為多個(gè),則根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其 中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合所述分布式內(nèi)存對(duì)象緩存服務(wù)器的個(gè)數(shù)、容量、內(nèi)存空閑程度。在該技術(shù)方案中,不再按照Key取模的方式進(jìn)行處理,從而實(shí)現(xiàn)更好的負(fù)載均衡分配。在上述任一技術(shù)方案中,優(yōu)選地,通過(guò)多臺(tái)索引服務(wù)器實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的管理,其中,所述多臺(tái)索引服務(wù)器包括主服務(wù)器和從服務(wù)器當(dāng)所述主服務(wù)器正常工作時(shí),所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備;當(dāng)所述主服務(wù)器出現(xiàn)故障時(shí),由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及當(dāng)所述主服務(wù)器恢復(fù)正常時(shí),從指定的索引服務(wù)器上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。在該技術(shù)方案中,通過(guò)設(shè)置主從式的索引服務(wù)器集群,從而在主服務(wù)器出現(xiàn)問(wèn)題時(shí),可以由從服務(wù)器進(jìn)行頂替;而主服務(wù)器在恢復(fù)正常后,也能夠及時(shí)通過(guò)對(duì)最新索引狀態(tài)信息的獲取,最快地重新恢復(fù)工作,把對(duì)系統(tǒng)運(yùn)行和用戶(hù)體驗(yàn)的影響降至最小。通過(guò)以上技術(shù)方案,可以對(duì)分布式內(nèi)存對(duì)象緩存服務(wù)器中的數(shù)據(jù)進(jìn)行有效管理,提高請(qǐng)求響應(yīng)和數(shù)據(jù)處理的效率。
圖IA和圖IB示出了根據(jù)本發(fā)明的實(shí)施例的分布式緩存管理系統(tǒng)的框圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的實(shí)現(xiàn)分布式緩存管理的方法的流程圖;圖3示出了根據(jù)本發(fā)明的實(shí)施例的分布式緩存管理系統(tǒng)的結(jié)構(gòu)示意圖;圖4A示出了根據(jù)本發(fā)明的實(shí)施例的主索引服務(wù)器的索引服務(wù)的運(yùn)行時(shí)的示意圖;圖4B示出了根據(jù)本發(fā)明的實(shí)施例的從索引服務(wù)器的索引服務(wù)的運(yùn)行時(shí)的示意圖;圖5A示出了根據(jù)本發(fā)明的實(shí)施例的建立索引的流程示意圖;圖5B示出了根據(jù)本發(fā)明的實(shí)施例的讀取數(shù)據(jù)的流程示意圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開(kāi)的具體實(shí)施例的限制。圖IA和圖IB示出了根據(jù)本發(fā)明的實(shí)施例的分布式緩存管理系統(tǒng)的框圖。如圖IA所示,根據(jù)本發(fā)明的實(shí)施例的分布式緩存管理系統(tǒng)100,包括索引服務(wù)器100A和分布式內(nèi)存對(duì)象緩存服務(wù)器100B,其中,所述索引服務(wù)器100A包括索引建立單元102,用于根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器100B中,并為緩存的數(shù)據(jù)建立索引;數(shù)據(jù)獲取單元104,用于根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B中獲取對(duì)應(yīng)的數(shù) 據(jù)。在該技術(shù)方案中,在分布式內(nèi)存對(duì)象緩存服務(wù)器100B的前端設(shè)置索引服務(wù)器100A,通過(guò)為緩存的數(shù)據(jù)建立索引,當(dāng)用戶(hù)希望獲取某個(gè)數(shù)據(jù)時(shí),能夠由索引服務(wù)器100A根據(jù)索引及時(shí)準(zhǔn)確地查找到該數(shù)據(jù),在緩存的數(shù)據(jù)量較大時(shí),依然能夠?qū)γ總€(gè)數(shù)據(jù)進(jìn)行有效管理,并提高數(shù)據(jù)查找效率。在由多臺(tái)分布式內(nèi)存對(duì)象緩存服務(wù)器100B構(gòu)成服務(wù)器集群時(shí),其中的部分服務(wù)器出現(xiàn)問(wèn)題時(shí),不會(huì)對(duì)其他的服務(wù)器造成影響,使得整個(gè)系統(tǒng)保持高可用性。在上述技術(shù)方案中,優(yōu)選地,所述索引服務(wù)器100A還包括數(shù)據(jù)判斷單元106,用于根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則進(jìn)一步判斷所述需要緩存的數(shù)據(jù)的版本號(hào)是否高于所述已緩存數(shù)據(jù)的版本號(hào);數(shù)據(jù)替換單元108,用于在所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)的情況下,將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。在該技術(shù)方案中,通過(guò)對(duì)數(shù)據(jù)版本號(hào)的比較,實(shí)現(xiàn)對(duì)于數(shù)據(jù)的更新,并避免出現(xiàn)低版本的數(shù)據(jù)對(duì)高版本數(shù)據(jù)的覆蓋。在上述任一技術(shù)方案中,優(yōu)選地,所述索引服務(wù)器100A還包括時(shí)間記錄單元110,用于記錄建立索引的時(shí)間;以及存儲(chǔ)控制單元112,用于在所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值的情況下,利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,對(duì)于已使用內(nèi)存容量不足的情況下,根據(jù)建立時(shí)間進(jìn)行新老替換,從而可以比較好地處理索引數(shù)量的不斷增加與有限的內(nèi)存容量之間的供需矛盾。如圖IB所示,優(yōu)選地,所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B的數(shù)量為多個(gè),則所述索引服務(wù)器100A包含除了圖IA中所示的各單元外,還包括位置確定單元114,用于根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B的個(gè)數(shù)、容量、內(nèi)存空閑程度。在該技術(shù)方案中,不再按照Key取模的方式進(jìn)行處理,從而實(shí)現(xiàn)更好的負(fù)載均衡分配。在上述技術(shù)方案中,優(yōu)選地,通過(guò)多臺(tái)索引服務(wù)器100A實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器100B的管理,其中,所述多臺(tái)索引服務(wù)器100A包括主服務(wù)器和從服務(wù)器在所述主服務(wù)器正常工作的情況下,所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備;在所述主服務(wù)器出現(xiàn)故障的情況下,由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及在所述主服務(wù)器恢復(fù)正常的情況下,從指定的索引服務(wù)器100A上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。在該技術(shù)方案中,通過(guò)設(shè)置主從式的索引服務(wù)器集群,從而在主服務(wù)器出現(xiàn)問(wèn)題時(shí),可以由從服務(wù)器進(jìn)行頂替;而主服務(wù)器在恢復(fù)正常后,也能夠及時(shí)通過(guò)對(duì)最新索引狀態(tài)信息的獲取,最快地重新恢復(fù)工作,把對(duì)系統(tǒng)運(yùn)行和用戶(hù)體驗(yàn)的影響降至最小。圖2示出了根據(jù)本發(fā)明的實(shí)施例的實(shí)現(xiàn)分布式緩存管理的方法的流程圖。
如圖2所示,根據(jù)本發(fā)明的實(shí)施例的實(shí)現(xiàn)分布式緩存管理的方法,包括步驟202,根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引;步驟204,根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,在分布式內(nèi)存對(duì)象緩存服務(wù)器的前端設(shè)置索引服務(wù)器,通過(guò)為緩存的數(shù)據(jù)建立索引,當(dāng)用戶(hù)希望獲取某個(gè)數(shù)據(jù)時(shí),能夠由索引服務(wù)器根據(jù)索引及時(shí)準(zhǔn)確地查找到該數(shù)據(jù),在緩存的數(shù)據(jù)量較大時(shí),依然能夠?qū)γ總€(gè)數(shù)據(jù)進(jìn)行有效管理,并提高數(shù)據(jù)查找效率。在由多臺(tái)分布式內(nèi)存對(duì)象緩存服務(wù)器構(gòu)成服務(wù)器集群時(shí),其中的部分服務(wù)器出現(xiàn)問(wèn)題時(shí),不會(huì)對(duì)其他的服務(wù)器造成影響,使得整個(gè)系統(tǒng)保持高可用性。在上述技術(shù)方案中,優(yōu)選地,所述步驟202還包括根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則當(dāng)所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)時(shí),將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。在該技術(shù)方案中,通過(guò)對(duì)數(shù)據(jù)版本號(hào)的比較,實(shí)現(xiàn)對(duì)于數(shù)據(jù)的更新,并避免出現(xiàn)低版本的數(shù)據(jù)對(duì)高版本數(shù)據(jù)的覆蓋。在上述任一技術(shù)方案中,優(yōu)選地,所述步驟202還包括記錄建立索引的時(shí)間;以及在所述分布式內(nèi)存對(duì)象緩存服務(wù)器中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值時(shí),利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。在該技術(shù)方案中,對(duì)于已使用內(nèi)存容量不足的情況下,根據(jù)建立時(shí)間進(jìn)行新老替換,從而可以比較好地處理索引數(shù)量的不斷增加與有限的內(nèi)存容量之間的供需矛盾。在上述任一技術(shù)方案中,優(yōu)選地,所述分布式內(nèi)存對(duì)象緩存服務(wù)器的數(shù)量為多個(gè),則根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合所述分布式內(nèi)存對(duì)象緩存服務(wù)器的個(gè)數(shù)、容量、內(nèi)存空閑程度。在該技術(shù)方案中,不再按照Key取模的方式進(jìn)行處理,從而實(shí)現(xiàn)更好的負(fù)載均衡分配。在上述任一技術(shù)方案中,優(yōu)選地,通過(guò)多臺(tái)索引服務(wù)器實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的管理,其中,所述多臺(tái)索引服務(wù)器包括主服務(wù)器和從服務(wù)器當(dāng)所述主服務(wù)器正常工作時(shí),所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備;當(dāng)所述主服務(wù)器出現(xiàn)故障時(shí),由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及當(dāng)所述主服務(wù)器恢復(fù)正常時(shí),從指定的索引服務(wù)器上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。在該技術(shù)方案中,通過(guò)設(shè)置主從式的索引服務(wù)器集群,從而在主服務(wù)器出現(xiàn)問(wèn)題時(shí),可以由從服務(wù)器進(jìn)行頂替;而主服務(wù)器在恢復(fù)正常后,也能夠及時(shí)通過(guò)對(duì)最新索引狀態(tài)信息的獲取,最快地重新恢復(fù)工作,把對(duì)系統(tǒng)運(yùn)行和用戶(hù)體驗(yàn)的影響降至最小。圖3示出了根據(jù)本發(fā)明的實(shí)施例的分布式緩存管理系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,分布式緩存管理系統(tǒng)包括索引服務(wù)器和MemcachedlOOB,其中,索引服務(wù)器包括主索引服務(wù)器100A1和從索引服務(wù)器100A2。應(yīng)用服務(wù)器300通過(guò)主 索引服務(wù)器100A1進(jìn)行數(shù)據(jù)的Set (緩存并建立對(duì)應(yīng)的索引)/Get (讀取),并由主索引服務(wù)器100A1對(duì)MemcachedlOOB進(jìn)行訪問(wèn),而應(yīng)用服務(wù)器300自身并不直接對(duì)MemcachedlOOB進(jìn)行訪問(wèn)。索引服務(wù)器以MemcachedlOOB緩存索引數(shù)據(jù),將來(lái)自應(yīng)用服務(wù)器300的數(shù)據(jù)分配到具體的MemcachedlOOB位置,并記錄對(duì)應(yīng)的索引信息。索引服務(wù)器以FIFtXFirst InputFirst Output,先入先出隊(duì)列)方式進(jìn)行淘汰,并作為應(yīng)用服務(wù)器300和MemcachedlOOB之間的Proxy (代理服務(wù)器)角色進(jìn)行數(shù)據(jù)的傳輸。可將多個(gè)索引服務(wù)器配置在一起構(gòu)成一個(gè)索引集群。如該圖所示,在同一個(gè)索引集群中,索引信息在各個(gè)索引服務(wù)器之前互為拷貝,保證索引表的一致性,這一特性使用索引集群具有高可用性。具體地,索引集群中的索引服務(wù)器分為主索引服務(wù)器100A1和從索引服務(wù)器100A2,其中,從索引服務(wù)器100A2不進(jìn)行實(shí)際的Set/Get操作,只是對(duì)主索引服務(wù)器100A1的一份熱備。當(dāng)主索引服務(wù)器100A1出現(xiàn)異常時(shí),從索引服務(wù)器100A2可承擔(dān)處理應(yīng)用的請(qǐng)求,而原來(lái)已經(jīng)異常的主索引服務(wù)器100A1變?yōu)閺模褜?duì)應(yīng)用產(chǎn)生的影響降至最小。主索引服務(wù)器100A1出現(xiàn)異常時(shí),通過(guò)配置中心進(jìn)行服務(wù)路由切換,那么從索引服務(wù)器100A2將由從變?yōu)橹?,所有的Set/Get請(qǐng)求落在該從索引服務(wù)器100A2上,待故障的主索引服務(wù)器100A1恢復(fù)并重新啟動(dòng)時(shí),會(huì)向集群中指定IP的索引服務(wù)器請(qǐng)求當(dāng)前最新的狀態(tài)信息,這些信息包括Memcached服務(wù)列表信息、索引數(shù)據(jù)的全量信息等,從而重新由從變回主,對(duì)數(shù)據(jù)進(jìn)行處理。索引服務(wù)器后端的MemcachedlOOB構(gòu)成實(shí)際的存儲(chǔ)信息集群,每個(gè)MemcachedlOOB保存一部分?jǐn)?shù)據(jù),索引服務(wù)器對(duì)已有的存儲(chǔ)資源進(jìn)行分配,并實(shí)時(shí)地將索引信息同步到索引集群中的其他索引服務(wù)器上去。在MemcachedlOOB中,數(shù)據(jù)的實(shí)際存儲(chǔ)位置的分配,不再按照Key取模的方式,而是根據(jù)后端MemcachedlOOB的個(gè)數(shù)及容量、內(nèi)存空閑程度等進(jìn)行負(fù)載均衡分配。當(dāng)對(duì)MemcachedlOOB進(jìn)行擴(kuò)容時(shí),不會(huì)對(duì)已存儲(chǔ)的信息造成影響,也不存在擴(kuò)容時(shí)的數(shù)據(jù)遷移問(wèn)題,因?yàn)樗械臄?shù)據(jù)都已經(jīng)通過(guò)索引建立了具體的對(duì)應(yīng)關(guān)系,只需要對(duì)之后繼續(xù)緩存的數(shù)據(jù)繼續(xù)建立索引即可;同時(shí),單個(gè)或部分MemcachedlOOB的失效也不會(huì)影響到整個(gè)Memcached群集的可用性。
在建立索引的過(guò)程中,對(duì)于同一索引Key的數(shù)據(jù),根據(jù)已緩存的數(shù)據(jù)和待緩存的數(shù)據(jù)的版本號(hào)進(jìn)行區(qū)分,從而避免了低版本數(shù)據(jù)覆蓋高版本數(shù)據(jù)的問(wèn)題。通過(guò)上述分布式緩存管理系統(tǒng)及相應(yīng)的處理過(guò)程,使得Memcached實(shí)例的SLA級(jí)別相比于不使用索引時(shí)得到較大的提升。對(duì)于圖3所示的分布式緩存管理系統(tǒng),其具體的框架及運(yùn)行時(shí)的情況,下面結(jié)合圖4A和圖4B進(jìn)行說(shuō)明,其中,圖4A示出了根據(jù)本發(fā)明的實(shí)施例的主索引服務(wù)器的索引服務(wù)的運(yùn)行時(shí)的示意圖;圖48示出了根據(jù)本發(fā)明的實(shí)施例的從索引服務(wù)器的索引服務(wù)的運(yùn)行時(shí)的示意圖。如圖4A和圖4B所示,索引服務(wù)器主要包括配置代理模塊(Config-agent)、本地索引控制器(Loc Index Controller)、數(shù)據(jù)傳輸裝置(Reactor NetIO)、通信管理線程(JgroupsMsg Manager Thread)、工作池(WorkersPool)分發(fā)器、Worker 線程等實(shí)現(xiàn)索引建 立、數(shù)據(jù)獲取等功能,其中本地索引控制器中還設(shè)置有定時(shí)器模塊(Timer-Module)和Memcached列表(Memcached List),配置代理模塊與定時(shí)器模塊之間實(shí)現(xiàn)JAVA本地調(diào)用(jni, Java NativeInterface),而定時(shí)器模塊與Memcached列表實(shí)現(xiàn)數(shù)據(jù)傳輸。數(shù)據(jù)傳輸裝置中包含有請(qǐng)求單元(request)和響應(yīng)單元(response)。通信管理線程與應(yīng)用服務(wù)器通過(guò)多播信息(多播Pkg)實(shí)現(xiàn)數(shù)據(jù)交互。Worker 線程包括隊(duì)列、索引圖(Index Map)、Memcached 連接池(Memcached conpool),每個(gè)Worker線程分別與Memcached集群連接,實(shí)現(xiàn)數(shù)據(jù)交互。如圖4A所示,在建立索引的過(guò)程中,主要包括以下步驟I、請(qǐng)求單元將請(qǐng)求發(fā)送至工作池分發(fā)器。2、工作池分發(fā)器根據(jù)請(qǐng)求中的Key取Worker線程數(shù)模進(jìn)行分發(fā)。3、Worker線程處理完成后返回?cái)?shù)據(jù)包。如圖4B所示,在讀取數(shù)據(jù)的過(guò)程中,主要包括以下步驟I、通過(guò)通信管理線程接收到應(yīng)用服務(wù)器發(fā)送的多播信息。2、通信管理線程將多播信息發(fā)送至工作池分發(fā)器。3、工作池分發(fā)器將消息分給具體的Worker線程進(jìn)行處理。對(duì)于圖4A和圖4B對(duì)應(yīng)的具體的建立索引和讀取數(shù)據(jù)的流程,下面結(jié)合圖5A和圖5B進(jìn)行詳細(xì)說(shuō)明,其中,圖5A示出了根據(jù)本發(fā)明的實(shí)施例的建立索引的流程示意圖;圖58示出了根據(jù)本發(fā)明的實(shí)施例的讀取數(shù)據(jù)的流程示意圖。如圖5A所示,建立索引的流程包括I.使用者發(fā)出的設(shè)置(Set)請(qǐng)求通過(guò)前端的應(yīng)用服務(wù)器發(fā)送至數(shù)據(jù)傳輸裝置。2.數(shù)據(jù)傳輸裝置讀取請(qǐng)求包,并判斷請(qǐng)求包是否已經(jīng)讀取完整。3.若請(qǐng)求包讀取完整,則數(shù)據(jù)傳輸裝置將請(qǐng)求包發(fā)送至工作池。4.由工作池分發(fā)器選擇一個(gè)Worker線程,將請(qǐng)求包放入該線程對(duì)應(yīng)的緩存隊(duì)列,并喚醒該Woker線程進(jìn)行處理。5. Worker處理線程判斷當(dāng)前Set數(shù)據(jù)是否有效,并判斷Key是否已經(jīng)存在Index記錄,且版本信息高于當(dāng)前請(qǐng)求值,若是,需拒絕當(dāng)前Set請(qǐng)求。否則,從目前有效的Memcached中,隨機(jī)選擇一個(gè)作為存儲(chǔ)入口(根據(jù)Memcached容量信息來(lái)隨機(jī)選擇,可以設(shè)置為大容量Memcached具有大的當(dāng)選概率)。6.通過(guò)上述存儲(chǔ)入口,將對(duì)應(yīng)的數(shù)據(jù)緩存至Memcached,其中,如果當(dāng)前選擇中Memcached的已使用內(nèi)存容量大于預(yù)設(shè)閾值(比如接近最大值),那么從索引map中找到最老節(jié)點(diǎn)(距離當(dāng)前時(shí)間最長(zhǎng)),并使用新的數(shù)據(jù)替換之。這樣就可以比較好的處理索引不斷增多和有限的內(nèi)存容量之間的供需矛盾。7. Woker線程將Index更新信息保存在Jgroups通知緩存隊(duì)列中。8.待Jgroups-msg-snder (通信線程)發(fā)送更新消息,通知到索引集群內(nèi)其他索引服務(wù)器。Worker處理線程根據(jù)獲取到的Memcached入口信息,獲取到此Memcached的長(zhǎng)連接,保存應(yīng)用應(yīng)用數(shù)據(jù)。若保存失敗,需刪除相應(yīng)Index信息。9. Worker處理線程拼裝Set響應(yīng)信息,通過(guò)NetIO. RespDispatcher找到對(duì)應(yīng)的前 端應(yīng)用連接入口,將響應(yīng)包緩存到響應(yīng)緩存隊(duì)列。10.數(shù)據(jù)傳輸裝置將響應(yīng)包發(fā)送至應(yīng)用前端。如圖5B所示,讀取數(shù)據(jù)的流程包括I.使用者發(fā)出的設(shè)置(Get)請(qǐng)求通過(guò)前端的應(yīng)用服務(wù)器發(fā)送至數(shù)據(jù)傳輸裝置。2.數(shù)據(jù)傳輸裝置讀取請(qǐng)求包,并判斷請(qǐng)求包是否已經(jīng)讀取完整。3.若請(qǐng)求包讀取完整,則數(shù)據(jù)傳輸裝置發(fā)送至工作池。4.由工作池分發(fā)器選擇一個(gè)Worker線程,將請(qǐng)求包放入該線程對(duì)應(yīng)的緩存隊(duì)列,并喚醒該Woker線程進(jìn)行處理。5. Worker處理線程首先判斷Key是否在本地索引表中存在記錄,若無(wú)則直接通知前端應(yīng)用Get失敗。另外,還可以判斷索引是否已經(jīng)超時(shí),或?qū)?yīng)的后端Memcached是否當(dāng)前有效。6. Worker處理線程根據(jù)獲取到的Memcached入口信息,獲取到此Memcached的長(zhǎng)連接,查詢(xún)應(yīng)用應(yīng)用數(shù)據(jù)。若查詢(xún)失敗,需刪除相應(yīng)Index信息。7. Worker處理線程拼裝Get響應(yīng)信息,通過(guò)Netio. RespDispatcher找到對(duì)應(yīng)的前端應(yīng)用連接入口,將響應(yīng)包緩存到響應(yīng)緩存隊(duì)列。8.數(shù)據(jù)傳輸裝置將響應(yīng)包發(fā)送至應(yīng)用前端。以上結(jié)合附圖詳細(xì)說(shuō)明了本發(fā)明的技術(shù)方案,考慮到相關(guān)技術(shù)中無(wú)法很好地對(duì)分布式內(nèi)存對(duì)象進(jìn)行有效管理,因此,本發(fā)明提供了一種分布式緩存管理系統(tǒng)和一種實(shí)現(xiàn)分布式緩存管理的方法,可以對(duì)分布式內(nèi)存對(duì)象緩存服務(wù)器中的數(shù)據(jù)進(jìn)行有效管理,提高請(qǐng)求響應(yīng)和數(shù)據(jù)處理的效率。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種分布式緩存管理系統(tǒng),其特征在于,包括索引服務(wù)器和分布式內(nèi)存對(duì)象緩存服務(wù)器,其中, 所述索引服務(wù)器包括 索引建立單元,用于根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引; 數(shù)據(jù)獲取單元,用于根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的分布式緩存管理系統(tǒng),其特征在于,所述索引服務(wù)器還包括 數(shù)據(jù)判斷單元,用于根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則進(jìn)一步判斷所述需要緩存的數(shù)據(jù)的版本號(hào)是否高于所述已緩存數(shù)據(jù)的版本號(hào); 數(shù)據(jù)替換單元,用于在所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)的情況下,將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。
3.根據(jù)權(quán)利要求I所述的分布式緩存管理系統(tǒng),其特征在于,所述索引服務(wù)器還包括 時(shí)間記錄單元,用于記錄建立索引的時(shí)間;以及 存儲(chǔ)控制單元,用于在所述分布式內(nèi)存對(duì)象緩存服務(wù)器中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值的情況下,利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。
4.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的分布式緩存管理系統(tǒng),其特征在于,所述分布式內(nèi)存對(duì)象緩存服務(wù)器的數(shù)量為多個(gè),則所述索引服務(wù)器還包括 位置確定單元,用于根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合 所述分布式內(nèi)存對(duì)象緩存服務(wù)器的個(gè)數(shù)、容量、內(nèi)存空閑程度。
5.根據(jù)權(quán)利要求I至3中任一項(xiàng)所述的分布式緩存管理系統(tǒng),其特征在于,通過(guò)多臺(tái)索引服務(wù)器實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的管理,其中,所述多臺(tái)索引服務(wù)器包括主服務(wù)器和從服務(wù)器 在所述主服務(wù)器正常工作的情況下,所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備; 在所述主服務(wù)器出現(xiàn)故障的情況下,由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及 在所述主服務(wù)器恢復(fù)正常的情況下,從指定的索引服務(wù)器上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。
6.一種實(shí)現(xiàn)分布式緩存管理的方法,其特征在于,包括 步驟202,根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引; 步驟204,根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)分布式緩存管理的方法,其特征在于,所述步驟202還包括根據(jù)需要緩存的數(shù)據(jù)的關(guān)鍵字以及已建立的索引,判斷是否存在相同的已緩存數(shù)據(jù),若存在,則當(dāng)所述需要緩存的數(shù)據(jù)的版本號(hào)高于所述已緩存數(shù)據(jù)的版本號(hào)時(shí),將所述需要緩存的數(shù)據(jù)替換所述已緩存數(shù)據(jù),否則拒絕所述數(shù)據(jù)緩存請(qǐng)求。
8.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)分布式緩存管理的方法,其特征在于,所述步驟202還包括 記錄建立索引的時(shí)間;以及 在所述分布式內(nèi)存對(duì)象緩存服務(wù)器中的已使用內(nèi)存容量大于或等于預(yù)設(shè)的容量閾值時(shí),利用新建立的索引及對(duì)應(yīng)的數(shù)據(jù)替換建立時(shí)間最早的已建立索引及對(duì)應(yīng)的數(shù)據(jù)。
9.根據(jù)權(quán)利要求6至8中任一項(xiàng)所述的實(shí)現(xiàn)分布式緩存管理的方法,其特征在于,所述分布式內(nèi)存對(duì)象緩存服務(wù)器的數(shù)量為多個(gè),則根據(jù)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的實(shí)時(shí)狀態(tài),確定需要緩存的數(shù)據(jù)的存儲(chǔ)位置,其中,所述實(shí)時(shí)狀態(tài)包括以下至少之一或其組合 所述分布式內(nèi)存對(duì)象緩存服務(wù)器的個(gè)數(shù)、容量、內(nèi)存空閑程度。
10.根據(jù)權(quán)利要求6至8中任一項(xiàng)所述的實(shí)現(xiàn)分布式緩存管理的方法,其特征在于,通過(guò)多臺(tái)索引服務(wù)器實(shí)現(xiàn)對(duì)所述分布式內(nèi)存對(duì)象緩存服務(wù)器的管理,其中,所述多臺(tái)索引服務(wù)器包括主服務(wù)器和從服務(wù)器 當(dāng)所述主服務(wù)器正常工作時(shí),所述主服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng),所述從服務(wù)器實(shí)現(xiàn)對(duì)所述主服務(wù)器的熱備; 當(dāng)所述主服務(wù)器出現(xiàn)故障時(shí),由所述從服務(wù)器實(shí)現(xiàn)對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng);以及 當(dāng)所述主服務(wù)器恢復(fù)正常時(shí),從指定的索引服務(wù)器上獲取最新索引狀態(tài)信息,以獲取對(duì)所述數(shù)據(jù)緩存請(qǐng)求和所述數(shù)據(jù)獲取請(qǐng)求的響應(yīng)。
全文摘要
本發(fā)明提供了一種分布式緩存管理系統(tǒng),包括索引服務(wù)器和分布式內(nèi)存對(duì)象緩存服務(wù)器,其中,所述索引服務(wù)器包括索引建立單元,用于根據(jù)接收到的數(shù)據(jù)緩存請(qǐng)求,將對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)至分布式內(nèi)存對(duì)象緩存服務(wù)器中,并為緩存的數(shù)據(jù)建立索引;數(shù)據(jù)獲取單元,用于根據(jù)接收到的數(shù)據(jù)獲取請(qǐng)求,獲取對(duì)應(yīng)的索引,并利用該索引從所述分布式內(nèi)存對(duì)象緩存服務(wù)器中獲取對(duì)應(yīng)的數(shù)據(jù)。本發(fā)明還提供了一種實(shí)現(xiàn)分布式緩存管理的方法。通過(guò)本發(fā)明的技術(shù)方案,可以對(duì)分布式內(nèi)存對(duì)象緩存服務(wù)器中的數(shù)據(jù)進(jìn)行有效管理,提高請(qǐng)求響應(yīng)和數(shù)據(jù)處理的效率。
文檔編號(hào)H04L29/08GK102833352SQ20121034562
公開(kāi)日2012年12月19日 申請(qǐng)日期2012年9月17日 優(yōu)先權(quán)日2012年9月17日
發(fā)明者孫為, 田睿, 吳振宇, 張弛 申請(qǐng)人:深圳中興網(wǎng)信科技有限公司