專利名稱:一種key-value數(shù)據(jù)分布式緩存系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,尤其是涉及海量key-value數(shù)據(jù)分布存儲在多個節(jié)點內(nèi)存中的系統(tǒng)和方法。
背景技術(shù):
由于大多數(shù)的互聯(lián)網(wǎng)服務(wù)需要從數(shù)據(jù)庫中獲取數(shù)據(jù),以提供訪問服務(wù)用戶數(shù)據(jù),而數(shù)據(jù)庫服務(wù)一般由于受制于硬盤io瓶頸,無法提供對大數(shù)據(jù)高并發(fā)訪問服務(wù)。現(xiàn)有的數(shù)據(jù)分布式緩存系統(tǒng)中,由于數(shù)據(jù)分片技術(shù)采用固定hash算法,當(dāng)系統(tǒng)擴(kuò)容,加入新存儲節(jié)點,會導(dǎo)致大量已經(jīng)存儲的數(shù)據(jù)失效,產(chǎn)生巨大數(shù)據(jù)遷移成本。此外,分片數(shù)據(jù)沒有采用復(fù)制集群技術(shù),系統(tǒng)存在單點故障,一旦分片節(jié)點宕機(jī)后,直接導(dǎo)致數(shù)據(jù)丟失。沒有采用連接池及長連接技術(shù),數(shù)據(jù)在網(wǎng)絡(luò)傳輸中損失大量性能,以及沒有數(shù)據(jù)分組配置管理功能,無法實現(xiàn)在同一個集群上儲存多個業(yè)務(wù)數(shù)據(jù)。此外,key-value數(shù)據(jù),value數(shù)據(jù)只支持字符格式,無法滿足業(yè)務(wù)對key關(guān)聯(lián)數(shù)據(jù)更加精細(xì)控制。最后,由于現(xiàn)有的數(shù)據(jù)存儲中沒有使用插件技術(shù),從而無法實現(xiàn)系統(tǒng)的靈活集成。
發(fā)明內(nèi)容
為了克服老舊方案的這些局限性,本發(fā)明創(chuàng)新提出的技術(shù)方案依據(jù)數(shù)據(jù)的key,采用一致性hash算法,實現(xiàn)key-value數(shù)據(jù)自動分片存儲,保證系統(tǒng)數(shù)據(jù)存儲容量的水平擴(kuò)充。分片數(shù)據(jù)采用自動復(fù)制集群儲存,從而保證了數(shù)據(jù)的高可靠性,及高可用性。為提高對key-value數(shù)據(jù)訪問的高效性,高可靠性,該發(fā)明采用長連接及連接池技術(shù)提高數(shù)據(jù)網(wǎng)絡(luò)交互性能,通過監(jiān)控集群每個節(jié)點的狀態(tài),及自動故障遷移技術(shù)消除集群中單點故障,保證數(shù)據(jù)訪問的高可靠性。具體而言,本發(fā)明提出了一種Key-value數(shù)據(jù)分布式緩存系統(tǒng),包括key-value訪問代理集群和key-value數(shù)據(jù)存儲集群,其中key-value訪問代理集群由多個數(shù)據(jù)訪問代理節(jié)點組成,key-value數(shù)據(jù)存儲集群由多個數(shù)據(jù)分片存儲復(fù)制集群組成,其中所述數(shù)據(jù)訪問代理節(jié)點用于發(fā)送節(jié)點業(yè)務(wù)存儲請求,并將數(shù)據(jù)讀寫請求路由到目標(biāo)數(shù)據(jù)存儲節(jié)點,存儲或者讀取業(yè)務(wù)數(shù)據(jù);所述數(shù)據(jù)分片存儲復(fù)制集群中采用主從數(shù)據(jù)復(fù)制機(jī)制,用于確定數(shù)據(jù)不存在單點故障,讀數(shù)據(jù)從多個從節(jié)點讀取,并且確定讀數(shù)據(jù)負(fù)載均衡。根據(jù)本發(fā)明另一方面,其中,所述數(shù)據(jù)訪問代理節(jié)點進(jìn)一步包括:Key_value數(shù)據(jù)存取模塊、存儲分組配置模塊、Key-value存儲分組模塊、存儲節(jié)點健康檢測模塊,其中所述Key-value數(shù)據(jù)存取模塊,用于通過建立與存儲集群各節(jié)點的通訊鏈路,實現(xiàn)數(shù)據(jù)請求網(wǎng)絡(luò)協(xié)議解析與存儲數(shù)據(jù)傳送及讀??;所述存儲分組配置模塊,用于解析存儲集群中物理節(jié)點信息,并實時監(jiān)測存儲集群物理配置變化,自動加載存儲節(jié)點;所述Key-value存儲分組模塊,用于復(fù)制數(shù)據(jù)路由,通過一致性hash算法,自動計算數(shù)據(jù)實際存儲的物理節(jié)點,實現(xiàn)數(shù)據(jù)訪問目標(biāo)物理節(jié)點的路由;所述存儲節(jié)點健康檢測模塊,用于通過建立與數(shù)據(jù)存儲集群中存儲節(jié)點的心跳鏈路,實時監(jiān)控存儲集群各節(jié)點的工作狀態(tài),并切換主存儲節(jié)點;根據(jù)本發(fā)明另一方面,其中,數(shù)據(jù)分片存儲復(fù)制集群進(jìn)一步包括:主存儲節(jié)點和從存儲節(jié)點,其中所述主存儲節(jié)點用于數(shù)據(jù)讀寫請求,以及增量數(shù)據(jù)同步服務(wù),維持與分片中其他節(jié)點的通訊鏈路,實現(xiàn)節(jié)點切換;所述從存儲節(jié)點用于數(shù)據(jù)讀請求,并實時從所述主存儲節(jié)點上同步數(shù)據(jù),維護(hù)數(shù)據(jù)的一致性,在所述主存儲節(jié)點失效后,從存儲節(jié)點切換成為主存儲節(jié)點。此外,本發(fā)明還提出了一種采用key-value數(shù)據(jù)分布式緩存系統(tǒng)的數(shù)據(jù)緩存方法,其中該方法包括:S101、業(yè)務(wù)寫key-value數(shù)據(jù),并將數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點;S102、所述數(shù)據(jù)訪問代理節(jié)點定位業(yè)務(wù)分組,通過對所述數(shù)據(jù)中的key值的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,并將所述數(shù)據(jù)發(fā)送至主存儲節(jié)點存儲;S103、從存儲節(jié)點通過oplog系統(tǒng)異步同步主節(jié)點數(shù)據(jù),保證數(shù)據(jù)同時存儲在復(fù)制集群的每個存儲節(jié)點上。根據(jù)本發(fā)明另一方面,其中在步驟S103后,該方法進(jìn)一步包括:S104、業(yè)務(wù)讀key-value數(shù)據(jù),先將數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點;S105、代理節(jié)點定位業(yè)務(wù)分組,通過對key的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,選取集群負(fù)載最低一個節(jié)點,將請求發(fā)送給該節(jié)點,獲取數(shù)據(jù)。根據(jù)本發(fā)明另一方面,該方法進(jìn)一步包括:S105、數(shù)據(jù)訪問節(jié)點與數(shù)據(jù)服務(wù)節(jié)點間通過連接池及長連接技術(shù)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互;S106、訪問節(jié)點實時監(jiān)控數(shù)據(jù)服務(wù)節(jié)點狀態(tài),一旦某個主存儲節(jié)點失效后,選用從節(jié)點中數(shù)據(jù)復(fù)制最多的一個從節(jié)點充當(dāng)主存儲節(jié)點,實現(xiàn)數(shù)據(jù)寫入故障動態(tài)遷移。本發(fā)明在通過采用一致性哈希算法對數(shù)據(jù)分片,實現(xiàn)在系統(tǒng)擴(kuò)容時,只有少量數(shù)據(jù)失效,減少數(shù)據(jù)從數(shù)據(jù)庫到緩存的遷移成本。數(shù)據(jù)分組管理,實現(xiàn)了多個業(yè)務(wù)公用一組緩存服務(wù)。使用復(fù)制集群技術(shù),及分布式配置技術(shù),系統(tǒng)無單點故障,提高了系統(tǒng)數(shù)據(jù)的可靠性,及可用性。連接池,長連接技術(shù)提高業(yè)務(wù)系統(tǒng)訪問緩存系統(tǒng)數(shù)據(jù)網(wǎng)絡(luò)傳輸速度。Key關(guān)聯(lián)豐富的數(shù)據(jù)結(jié)構(gòu),復(fù)雜的業(yè)務(wù)數(shù)據(jù)計算直接可以在緩存中完成,不需要在硬盤上交互數(shù)據(jù),大幅挺高業(yè)務(wù)數(shù)據(jù)計算速度。
下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明:附圖1所示為本發(fā)明所提出的一種key-value數(shù)據(jù)分布式緩存系統(tǒng)結(jié)構(gòu)示意圖;附圖2所示為本發(fā)明所提出的一種key-value數(shù)據(jù)分布式緩存方法的流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了解決現(xiàn)有的數(shù)據(jù)分布緩存系統(tǒng)的缺陷,本發(fā)明的技術(shù)方案從以下幾個方面對key-value數(shù)據(jù)分布式緩存系統(tǒng)的優(yōu)化:1、一致性哈希算法的數(shù)據(jù)自動分片技術(shù),當(dāng)系統(tǒng)擴(kuò)容時,加入新存儲節(jié)點,只會導(dǎo)致少量數(shù)據(jù)失效,數(shù)據(jù)遷移成本小。2、分片數(shù)據(jù)采用復(fù)制集群存儲技術(shù),分片上的數(shù)據(jù)實時自動復(fù)制到集群中slave節(jié)點上,排除單點故障數(shù)據(jù)丟失。3、長連接,連接池網(wǎng)絡(luò)存儲數(shù)據(jù)技術(shù),減少了數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的性能損耗,提高數(shù)據(jù)訪問效率。4、故障自動遷移技術(shù),當(dāng)節(jié)點發(fā)生巖機(jī)時,自動檢測節(jié)點狀態(tài),將數(shù)據(jù)訪問請求自動轉(zhuǎn)移到健康節(jié)點上,排除單點故障數(shù)據(jù)訪問故障。5、支持key-value, value數(shù)據(jù)可以是鏈表,數(shù)組,跳躍表,哈希表等豐富數(shù)據(jù)結(jié)構(gòu),滿足業(yè)務(wù)對數(shù)據(jù)精細(xì)控制需求。6、插件技術(shù),可以靈活集成到各種開發(fā)語言,及平臺。7、數(shù)據(jù)的分組管理,在同一數(shù)據(jù)集群中可以管理多組業(yè)務(wù)數(shù)據(jù),分布式配置,配置自動生效技術(shù)也防止單點故障,提高系統(tǒng)運維的靈活性。圖2描述了本發(fā)明提出的系統(tǒng)結(jié)構(gòu)。如圖所示,本發(fā)明提出的Key-value數(shù)據(jù)分布式緩存系統(tǒng)由key-value訪問代理集群和key-value數(shù)據(jù)存儲集群組成,集群分別支持水平擴(kuò)充,其中key-value訪問代理集群由多個訪問代理節(jié)點組成,key-value數(shù)據(jù)存儲集群由多個數(shù)據(jù)分片存儲復(fù)制集群組成,其中數(shù)據(jù)訪問代理節(jié)點用于發(fā)送節(jié)點業(yè)務(wù)存儲請求,并將數(shù)據(jù)讀寫請求路由到目標(biāo)數(shù)據(jù)存儲節(jié)點,存儲或者讀取業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)分片存儲復(fù)制集群中采用主從數(shù)據(jù)復(fù)制機(jī)制,用于確定數(shù)據(jù)不存在單點故障,讀數(shù)據(jù)從多個從節(jié)點讀取,并且確定讀數(shù)據(jù)負(fù)載均衡。其中,數(shù)據(jù)訪問代理節(jié)點進(jìn)一步包括:Key value數(shù)據(jù)存取模塊、存儲分組配置模塊、Key value存儲分組模塊、存儲節(jié)點健康檢測模塊Key value數(shù)據(jù)存取組件,用于通過建立與存儲集群各節(jié)點的通訊鏈路,實現(xiàn)數(shù)據(jù)請求網(wǎng)絡(luò)協(xié)議解析與存儲數(shù)據(jù)傳送及讀??;存儲分組配置模塊,用于解析存儲集群中物理節(jié)點信息,并實時監(jiān)測存儲集群物理配置變化,自動加載存儲節(jié)點;Key value存儲分組模塊,用于復(fù)制數(shù)據(jù)路由,通過一致性hash算法,自動計算數(shù)據(jù)實際存儲的物理節(jié)點,實現(xiàn)數(shù)據(jù)訪問目標(biāo)物理節(jié)點的路由;存儲節(jié)點健康檢測模塊,用于通過建立與數(shù)據(jù)存儲集群中存儲節(jié)點的心跳鏈路,實時監(jiān)控存儲集群各節(jié)點的工作狀態(tài),并切換主存儲節(jié)點;其中,數(shù)據(jù)分片存儲復(fù)制集群進(jìn)一步包括:主存儲節(jié)點和從存儲節(jié)點,其中主存儲節(jié)點用于數(shù)據(jù)讀寫請求,以及增量數(shù)據(jù)同步服務(wù),維持與分片中其他節(jié)點的通訊鏈路,實現(xiàn)節(jié)點切換;從存儲節(jié)點用于數(shù)據(jù)讀請求,并實時從所述主存儲節(jié)點上同步數(shù)據(jù),維護(hù)數(shù)據(jù)的一致性,在所述主存儲節(jié)點失效后,從存儲節(jié)點切換成為主存儲節(jié)點。此外,本發(fā)明還公開了一種采用key-value數(shù)據(jù)分布式緩存系統(tǒng)的數(shù)據(jù)緩存方法,其中該方法包括以下步驟,如圖2所示:S101、業(yè)務(wù)寫key-value數(shù)據(jù),并將數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點;S102、所述數(shù)據(jù)訪問代理節(jié)點定位業(yè)務(wù)分組,通過對key值的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,將數(shù)據(jù)發(fā)送至主存儲節(jié)點存儲,S103、從存儲節(jié)點通過oplog系統(tǒng)異步同步主節(jié)點數(shù)據(jù),保證數(shù)據(jù)同時存儲在復(fù)制集群的每個存儲節(jié)點上。其中,在步驟S103后,該方法進(jìn)一步包括:S104、業(yè)務(wù)讀key-value數(shù)據(jù),先將數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點;S105、代理節(jié)點定位業(yè)務(wù)分組,通過對key值的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,選取所述復(fù)制集群中負(fù)載最低一個節(jié)點,將請求發(fā)送給該節(jié)點,獲取數(shù)據(jù)。其中,該方法進(jìn)一步包括:S105、數(shù)據(jù)訪問節(jié)點與數(shù)據(jù)服務(wù)節(jié)點間通過連接池及長連接技術(shù)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互;S106、訪問節(jié)點實時監(jiān)控數(shù)據(jù)服務(wù)節(jié)點狀態(tài),一旦某個主存儲節(jié)點失效后,選用從節(jié)點中數(shù)據(jù)復(fù)制最多的一個從節(jié)點充當(dāng)主存儲節(jié)點,實現(xiàn)數(shù)據(jù)寫入故障動態(tài)遷移。由于數(shù)據(jù)存儲節(jié)點之間,數(shù)據(jù)訪問代理節(jié)點之間,無任何耦合關(guān)聯(lián),從而實現(xiàn)系統(tǒng)的水平擴(kuò)容由于key-value數(shù)據(jù)訪問,使用組件技術(shù),使得數(shù)據(jù)訪問節(jié)點可以靈活使用多種開發(fā)語言,多種平臺,多種協(xié)議,提供服務(wù)。下面根據(jù)一具體實施方式
來說明本發(fā)明的實施過程。在視頻評論系統(tǒng)中1、新發(fā)表視頻評論時,通過key-value訪問代理,以視頻id為key,視頻評論為value的key-value數(shù)據(jù),由訪問代理根據(jù)視頻id計算出存儲數(shù)據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群,由key-value訪問代理將數(shù)據(jù)寫入到目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群的主存儲節(jié)點,同時目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中的從節(jié)點采用oplog方式從主存儲節(jié)點中同步視頻評論數(shù)據(jù),保持?jǐn)?shù)據(jù)存儲分片復(fù)制集群中的數(shù)據(jù)一致性。2、獲取視頻評論時,通過key-value訪問代理,根據(jù)視頻id,由訪問代理計算出存儲數(shù)據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群,由key-value訪問代理從目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中從存儲節(jié)點上獲取視頻評論數(shù)據(jù),key-value訪問代理會依據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中從存儲節(jié)點當(dāng)前的負(fù)載狀況,選擇負(fù)載低的從存儲節(jié)點上獲取數(shù)據(jù)。3、當(dāng)訪問的視頻評論數(shù)據(jù)不存在于key-value數(shù)據(jù)分布式緩存系統(tǒng)時,從數(shù)據(jù)庫獲取視頻數(shù)據(jù),按照步驟一將數(shù)據(jù)更新到key-value數(shù)據(jù)分布式緩存系統(tǒng)中,下次獲取視頻評論數(shù)據(jù)時,就可以按步驟二獲取視頻評論數(shù)據(jù),通過以上步驟可極大的降低對視頻評論數(shù)據(jù)庫的訪問壓力,由于key-value數(shù)據(jù)分布式緩存系統(tǒng)數(shù)據(jù)存儲在內(nèi)存中,數(shù)據(jù)讀寫性能高,極大的提高了視頻評論數(shù)據(jù)的訪問效率。4、視頻評論數(shù)據(jù),以視頻id為key,通過一致性哈希算法自動分布存儲,實現(xiàn)對海量視頻評論數(shù)據(jù)的緩存存儲。在用戶消息通知系統(tǒng)中1、有新消息發(fā)送給用戶時,通過key-value訪問代理,以用戶id為key,用戶消息為value的key-value,由訪問代理根據(jù)用戶id計算出存儲數(shù)據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群,由key-value訪問代理將數(shù)據(jù)寫入到目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群的主存儲節(jié)點,同時目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中的從節(jié)點采用oplog方式從主存儲節(jié)點中同步用戶新消息數(shù)據(jù),保持?jǐn)?shù)據(jù)存儲分片復(fù)制集群中的數(shù)據(jù)一致性。2、用戶獲取新消息時,通過key-value訪問代理,根據(jù)用戶id,由訪問代理計算出存儲數(shù)據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群,由key-value訪問代理從目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中從存儲節(jié)點上獲取用戶新消息數(shù)據(jù),key-value訪問代理會依據(jù)目標(biāo)數(shù)據(jù)存儲分片復(fù)制集群中從存儲節(jié)點當(dāng)前的負(fù)載狀況,選擇負(fù)載低的從存儲節(jié)點上獲取數(shù)據(jù)。本發(fā)明通過采用一致性哈希算法對數(shù)據(jù)分片,實現(xiàn)在系統(tǒng)擴(kuò)容時,只有少量數(shù)據(jù)失效,減少數(shù)據(jù)從數(shù)據(jù)庫到緩存的遷移成本。數(shù)據(jù)分組管理,實現(xiàn)了多個業(yè)務(wù)公用一組緩存服務(wù)。使用復(fù)制集群技術(shù),及分布式配置技術(shù),系統(tǒng)無單點故障,提高了系統(tǒng)數(shù)據(jù)的可靠性,及可用性。連接池,長連接技術(shù)提高業(yè)務(wù)系統(tǒng)訪問緩存系統(tǒng)數(shù)據(jù)網(wǎng)絡(luò)傳輸速度。Key關(guān)聯(lián)豐富的數(shù)據(jù)結(jié)構(gòu),復(fù)雜的業(yè)務(wù)數(shù)據(jù)計算直接可以在緩存中完成,不需要在硬盤上交互數(shù)據(jù),大幅挺高業(yè)務(wù)數(shù)據(jù)計算速度。綜上所述,雖然本發(fā)明已以優(yōu)選實施例披露如上,然而其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作各種變動與修飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種Key-value數(shù)據(jù)分布式緩存系統(tǒng),包括key-value訪問代理集群和key-value數(shù)據(jù)存儲集群,其中key-value訪問代理集群由多個數(shù)據(jù)訪問代理節(jié)點組成,key-value數(shù)據(jù)存儲集群由多個數(shù)據(jù)分片存儲復(fù)制集群組成,其中 所述數(shù)據(jù)訪問代理節(jié)點用于發(fā)送節(jié)點業(yè)務(wù)存儲請求,并將數(shù)據(jù)讀寫請求路由到目標(biāo)數(shù)據(jù)存儲節(jié)點,存儲或者讀取業(yè)務(wù)數(shù)據(jù); 所述數(shù)據(jù)分片存儲復(fù)制集群中采用主從數(shù)據(jù)復(fù)制機(jī)制,用于確定數(shù)據(jù)不存在單點故障,并且從多個從節(jié)點讀取,以確定讀數(shù)據(jù)負(fù)載均衡。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述數(shù)據(jù)訪問代理節(jié)點進(jìn)一步包括:Key_value數(shù)據(jù)存取模塊、存儲分組配置模塊、Key-value存儲分組模塊、存儲節(jié)點健康檢測模塊,其中 所述Key-value數(shù)據(jù)存取模塊,用于通過建立與存儲集群各節(jié)點的通訊鏈路,實現(xiàn)數(shù)據(jù)請求網(wǎng)絡(luò)協(xié)議解析與存儲數(shù)據(jù)傳送及讀?。? 所述存儲分組配置模塊,用于解析存儲集群中物理節(jié)點信息,并實時監(jiān)測存儲集群物理配置變化,自動加載存儲節(jié)點; 所述Key-value存儲分組模塊,用于復(fù)制數(shù)據(jù)路由,通過一致性hash算法,自動計算數(shù)據(jù)實際存儲的物理節(jié)點,實現(xiàn)數(shù)據(jù)訪問目標(biāo)物理節(jié)點的路由; 所述存儲節(jié)點健康檢測模塊,用于通過建立與數(shù)據(jù)存儲集群中存儲節(jié)點的心跳鏈路,實時監(jiān)控存儲集群各節(jié)點的工作狀態(tài),并切換主存儲節(jié)點。
3.如權(quán)利要求1所述的系統(tǒng),其中,數(shù)據(jù)分片存儲復(fù)制集群進(jìn)一步包括:主存儲節(jié)點和從存儲節(jié)點,其中 所述主存儲節(jié)點用于數(shù)據(jù)讀寫請求,以及增量數(shù)據(jù)同步服務(wù),維持與分片中其他節(jié)點的通訊鏈路,實現(xiàn)節(jié)點切換; 所述從存儲節(jié)點用于數(shù)據(jù)讀請求,并實時從所述主存儲節(jié)點上同步數(shù)據(jù),維護(hù)數(shù)據(jù)的一致性,在所述主存儲節(jié)點失效后,從存儲節(jié)點切換成為主存儲節(jié)點。
4.一種采用權(quán)利要求1的key-value數(shù)據(jù)分布式緩存系統(tǒng)的數(shù)據(jù)緩存方法,其中該方法包括: .5101、業(yè)務(wù)寫key-value數(shù)據(jù),并將所述數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點; .5102、所述數(shù)據(jù)訪問代理節(jié)點定位業(yè)務(wù)分組,通過對所述數(shù)據(jù)中的key值的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,并將所述數(shù)據(jù)發(fā)送至主存儲節(jié)點存儲; .5103、從存儲節(jié)點通過oplog系統(tǒng)異步同步主節(jié)點數(shù)據(jù),保證數(shù)據(jù)同時存儲在復(fù)制集群的每個存儲節(jié)點上。
5.如權(quán)利要求4所述的方法,該方法進(jìn)一步包括: .5104、業(yè)務(wù)讀key-value數(shù)據(jù),先將數(shù)據(jù)發(fā)送給數(shù)據(jù)訪問代理節(jié)點; .5105、代理節(jié)點定位業(yè)務(wù)分組,通過對key值的一致性hash計算,獲取數(shù)據(jù)分片復(fù)制集群的節(jié)點信息,選取所述數(shù)據(jù)分片復(fù)制集群中負(fù)載最低一個節(jié)點,將請求發(fā)送給該節(jié)點,并獲取數(shù)據(jù)。
6.如權(quán)利要求4所述的方法,該方法進(jìn)一步包括: . 5105、數(shù)據(jù)訪問節(jié)點與數(shù)據(jù)服務(wù)節(jié)點間通過連接池及長連接技術(shù)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互; .5106、訪問節(jié)點實時監(jiān)控數(shù)據(jù)服務(wù)節(jié)點狀態(tài),一旦某個主存儲節(jié)點失效后,選用從節(jié)點中數(shù)據(jù)復(fù)制最多的一個從節(jié)點充當(dāng)主存儲節(jié)點,實現(xiàn)數(shù)據(jù)寫入故障動態(tài)遷移。
全文摘要
本發(fā)明公開了一種Key-value數(shù)據(jù)分布式緩存系統(tǒng)及其方法,其中該系統(tǒng)包括key-value訪問代理集群和key-value數(shù)據(jù)存儲集群,其中key-value訪問代理集群由多個數(shù)據(jù)訪問代理節(jié)點組成,key-value數(shù)據(jù)存儲集群由多個數(shù)據(jù)分片存儲復(fù)制集群組成,其中所述數(shù)據(jù)訪問代理節(jié)點用于發(fā)送節(jié)點業(yè)務(wù)存儲請求,并將數(shù)據(jù)讀寫請求路由到目標(biāo)數(shù)據(jù)存儲節(jié)點,存儲或者讀取業(yè)務(wù)數(shù)據(jù);所述數(shù)據(jù)分片存儲復(fù)制集群中采用主從數(shù)據(jù)復(fù)制機(jī)制,用于確定數(shù)據(jù)不存在單點故障,讀數(shù)據(jù)從多個從節(jié)點讀取,并且確定讀數(shù)據(jù)負(fù)載均衡。采用本發(fā)明所提出的技術(shù)方案,通過一致性hash算法,實現(xiàn)key-value數(shù)據(jù)自動分片存儲,保證系統(tǒng)數(shù)據(jù)存儲容量的水平擴(kuò)充。
文檔編號G06F17/30GK103078927SQ20121058650
公開日2013年5月1日 申請日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者張宇峰, 彭錦臻, 姚健, 潘柏宇, 盧述奇 申請人:合一網(wǎng)絡(luò)技術(shù)(北京)有限公司