專(zhuān)利名稱(chēng):一種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算領(lǐng)域,特別涉及ー種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法、裝置及系統(tǒng)。
背景技術(shù):
Cloud Computing(云計(jì)算)是 Grid Computing(網(wǎng)格計(jì)算)、DistributedComputing(分布式計(jì)算)、Parallel Computing(并行計(jì)算)、Utility Computing(效用計(jì)算)、Network Storage Technologies (網(wǎng)絡(luò)存儲(chǔ))、Virtualization (虛擬化)、LoadBalance (負(fù)載均衡)等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。Cloud Computing旨在通過(guò)網(wǎng)絡(luò)把多個(gè)成本相對(duì)較低的計(jì)算實(shí)體整合成ー個(gè)具有強(qiáng)大計(jì)算能力的系統(tǒng)。分布式緩存是云計(jì)算范疇中的ー個(gè)領(lǐng)域,其作用是提供海量數(shù)據(jù)的分布式存儲(chǔ)服務(wù)以及高速讀寫(xiě)訪(fǎng)問(wèn)的能力。分布式緩存系統(tǒng)是由若干服務(wù)器節(jié)點(diǎn)和服務(wù)終端互相連接構(gòu) 成的;服務(wù)器節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),服務(wù)終端可以對(duì)服務(wù)器節(jié)點(diǎn)做數(shù)據(jù)的寫(xiě)入、讀取、更新、刪除等操作,例如,商店里的監(jiān)視器(即服務(wù)終端)針對(duì)每一個(gè)進(jìn)入商店的顧客進(jìn)行計(jì)數(shù)統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果上報(bào)至后臺(tái)的服務(wù)節(jié)點(diǎn)進(jìn)行存儲(chǔ)。一般來(lái)說(shuō),為了保證數(shù)據(jù)的安全性,月艮務(wù)終端寫(xiě)入的數(shù)據(jù)不可能只保存在單個(gè)服務(wù)器節(jié)點(diǎn)(以下簡(jiǎn)稱(chēng)“節(jié)點(diǎn)”)上,而是在多臺(tái)節(jié)點(diǎn)上保存同一個(gè)數(shù)據(jù)的副本,互為備份。而存儲(chǔ)的數(shù)據(jù)由Key (鍵)和Value(值)構(gòu)成,Key相當(dāng)于數(shù)據(jù)的索引,例如,Key設(shè)置為“進(jìn)入商店的顧客總數(shù)目,而Value是Key所代表的數(shù)據(jù)內(nèi)容,例如,Value為“ 10203人次”,在邏輯上,Key和Value是ー對(duì)一的關(guān)系,用于唯一標(biāo)識(shí)某一形式的數(shù)據(jù)存儲(chǔ),這種存儲(chǔ)形式又稱(chēng)為分布式自增計(jì)數(shù)器。分布式自增計(jì)數(shù)器用途很廣泛,可以實(shí)現(xiàn)在分布式環(huán)境中進(jìn)行數(shù)值的原子加減運(yùn)算,可以實(shí)現(xiàn)全局唯一序列號(hào)的生成,可以實(shí)現(xiàn)全局的統(tǒng)計(jì)計(jì)數(shù)功能等?;诜植际阶栽鲇?jì)數(shù)器,應(yīng)用可以實(shí)現(xiàn)許多復(fù)雜的功能。目前,分布式自增計(jì)數(shù)器的準(zhǔn)確性、并發(fā)性、可用性和效率是難以兼顧的關(guān)鍵問(wèn)題。現(xiàn)有技術(shù)下,通常保證了并發(fā)性和準(zhǔn)確性的系統(tǒng),無(wú)法實(shí)現(xiàn)高可用性,如,在有任意ー節(jié)點(diǎn)故障時(shí),整體服務(wù)會(huì)間斷,將故障節(jié)點(diǎn)的任務(wù)全部轉(zhuǎn)到其他節(jié)點(diǎn)上執(zhí)行后,再恢復(fù)整體服務(wù),這就往往要花費(fèi)很長(zhǎng)時(shí)間,從而在一定程度上降低了分布式自增計(jì)數(shù)器的服務(wù)效率;進(jìn)一歩地,現(xiàn)有技術(shù)下,保證了準(zhǔn)確性和可用性的系統(tǒng),無(wú)法實(shí)現(xiàn)多請(qǐng)求并發(fā),如,同一個(gè)數(shù)值的多個(gè)自增計(jì)數(shù)同時(shí)發(fā)到服務(wù)端時(shí),只能允許ー個(gè)請(qǐng)求成功,其他請(qǐng)求將返回失敗,請(qǐng)求失敗的服務(wù)終端必須重試,這在一定程度上也降低了分布式自增計(jì)數(shù)器的服務(wù)效率;再進(jìn)ー步地,保證了并發(fā)性和可用性的系統(tǒng),無(wú)法保證準(zhǔn)確性,如,多個(gè)自增計(jì)數(shù)請(qǐng)求同時(shí)執(zhí)行吋,各服務(wù)器之間的計(jì)數(shù)結(jié)果未經(jīng)協(xié)調(diào),從而導(dǎo)致計(jì)數(shù)結(jié)果不一致,影響其計(jì)數(shù)準(zhǔn)確性。鑒于上述現(xiàn)有技術(shù)的局限性,需要提供一種新的分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法,以克服上述技術(shù)缺陷。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供ー種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法及裝置,用以提高分布式自增計(jì)數(shù)的執(zhí)行效率,提升計(jì)數(shù)結(jié)果的準(zhǔn)確性。本發(fā)明實(shí)施例提供的具體技術(shù)方案如下ー種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法,包括第一服務(wù)器接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯用于指示操作內(nèi)容的標(biāo)識(shí)信息;第一服務(wù)器根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,其中,第一服務(wù)器和第二服務(wù)器互為備份;
第一服務(wù)器根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果;第一服務(wù)器將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功。ー種分布式自增計(jì)數(shù)的實(shí)現(xiàn)裝置,包括第一通信単元,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯用于指示操作內(nèi)容的標(biāo)識(shí)信息;獲取單元,用于根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,其中,本裝置和第二服務(wù)器互為備份;執(zhí)行單元,用于根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果;第二通信単元,用于將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功。ー種分布式自增計(jì)數(shù)的實(shí)現(xiàn)系統(tǒng),包括互為備份的第一服務(wù)器和第二服務(wù)器,其中,第一服務(wù)器,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯用于指示操作內(nèi)容的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,井根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果,再將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功;第二服務(wù)器,用于根據(jù)第一服務(wù)器發(fā)送的標(biāo)識(shí)信息,向第一服務(wù)器返回本地對(duì)應(yīng)所述標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果,以及對(duì)第一服務(wù)器發(fā)送的更新后的計(jì)數(shù)結(jié)果進(jìn)行備份,并向第一服務(wù)器返回備份結(jié)果。本發(fā)明實(shí)施例中,針對(duì)云計(jì)算領(lǐng)域分布式緩存系統(tǒng),提出了一種高效的分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法,具體為針對(duì)ー個(gè)自增計(jì)數(shù)器在多個(gè)服務(wù)器上保存其計(jì)數(shù)結(jié)果的副本,每次執(zhí)行自增計(jì)數(shù)操作時(shí),在各服務(wù)器上針對(duì)同一自增計(jì)數(shù)器保存的計(jì)數(shù)結(jié)果中選取出最新的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,從而有效保證了計(jì)數(shù)結(jié)果的準(zhǔn)確性,同時(shí),只需確認(rèn)計(jì)數(shù)結(jié)果備份成功的服務(wù)器的數(shù)目達(dá)到設(shè)定閾值,便可確定當(dāng)前自增計(jì)數(shù)操作成功,從而在一定程度上提高了自增計(jì)數(shù)操作的執(zhí)行效率,并且當(dāng)某服務(wù)器出現(xiàn)故障時(shí)只要正常工作的服務(wù)器的數(shù)目達(dá)到設(shè)置的門(mén)限值,就不會(huì)影響分布式緩存系統(tǒng)的正常工作,進(jìn)而有效提高了分布式緩存系統(tǒng)的穩(wěn)定性、安全性及可用性。
圖I為本發(fā)明實(shí)施例中分布式緩存系統(tǒng)體系架構(gòu)圖;圖2為本發(fā)明實(shí)施例中協(xié)同服務(wù)器功能架構(gòu)示意圖;圖3為本發(fā)明實(shí)施例中實(shí)現(xiàn)自增計(jì)數(shù)操作概述流程圖;圖4為本發(fā)明實(shí)施例中實(shí)現(xiàn)自增計(jì)數(shù)操作舉例流程圖。
具體實(shí)施例方式在分布式緩存系統(tǒng)中,為了提供可用的高效的自增計(jì)數(shù)服務(wù),令某服務(wù)器發(fā)生臨 時(shí)故障時(shí)不影響系統(tǒng)的整體服務(wù)性能,本發(fā)明實(shí)施例中,提供了一種高效的分布式自增計(jì)數(shù)的方法,具體為在服務(wù)器端采用多副本機(jī)制,即針對(duì)同一個(gè)自增計(jì)數(shù)器在多個(gè)服務(wù)器上保存其數(shù)據(jù)副本,每次執(zhí)行自增計(jì)數(shù)操作吋,執(zhí)行自增計(jì)數(shù)操作成功的服務(wù)器的數(shù)目達(dá)到預(yù)設(shè)門(mén)限值,則視為系統(tǒng)整體執(zhí)行自增操作成功;與現(xiàn)在技術(shù)相比,本發(fā)明實(shí)施例的優(yōu)勢(shì)在于,當(dāng)某服務(wù)器出現(xiàn)故障時(shí)只要正常工作的服務(wù)器的數(shù)目達(dá)到設(shè)置的門(mén)限值,就不會(huì)影響分布式緩存系統(tǒng)的正常工作。下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)介紹。參閱圖I所示,本發(fā)明實(shí)施例中,分布式緩存系統(tǒng)中設(shè)置有多個(gè)互為備份的服務(wù)器,其中,第一服務(wù)器,又稱(chēng)為協(xié)同服務(wù)器,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯用于指示操作內(nèi)容的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各副本服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,井根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果,再將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各副本服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的副本服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功;第二服務(wù)器,又稱(chēng)為副本服務(wù)器,用于根據(jù)協(xié)同服務(wù)器發(fā)送的標(biāo)識(shí)信息,向協(xié)同服務(wù)器返回本地對(duì)應(yīng)所述標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果,以及對(duì)協(xié)同服務(wù)器發(fā)送的更新后的計(jì)數(shù)結(jié)果進(jìn)行備份,井向協(xié)同服務(wù)器返回備份結(jié)果。如圖I所示,服務(wù)終端和多個(gè)服務(wù)器(包括協(xié)同服務(wù)器和副本服務(wù)器)之間建立連接,多個(gè)服務(wù)器之間同樣互相建立連接并且運(yùn)行正常,其中,當(dāng)某ー個(gè)Key及相應(yīng)的Value被保存在多個(gè)服務(wù)器上后,其中一個(gè)服務(wù)器將在后續(xù)的自增計(jì)數(shù)操作中被服務(wù)終端選定為協(xié)同服務(wù)器,其余的服務(wù)器則稱(chēng)為副本服務(wù)器,協(xié)同服務(wù)器和副本服務(wù)器互為備份,即這些服務(wù)器上有存儲(chǔ)有保存有相同的ー個(gè)Key和對(duì)應(yīng)的Value,針對(duì)不同的Key及Value,服務(wù)終端選定的協(xié)同服務(wù)器和副本服務(wù)器可以相同,也可以不同,而針對(duì)同一個(gè)Key及Value,在不同的自增計(jì)數(shù)操作流程中,服務(wù)終端選定的協(xié)同服務(wù)器和副本服務(wù)器可以相同,也可以不相同。在實(shí)際應(yīng)用中,若某ー個(gè)Key (稱(chēng)為Key A)對(duì)應(yīng)的協(xié)同服務(wù)器發(fā)生了故障,則系統(tǒng)可以在相應(yīng)的副本服務(wù)器中按照優(yōu)先級(jí)從高到低的順序選擇ー個(gè)優(yōu)先級(jí)符合要求的副本服務(wù)器作為新的協(xié)同服務(wù)器,如,選取優(yōu)先級(jí)最高/次高/第三高/......的副本服務(wù)器作
為新的協(xié)同服務(wù)器,其他副本服務(wù)器則仍然作為副本服務(wù)器,這樣,新的協(xié)同服務(wù)器和副本服務(wù)器之間仍然互為備份,從而有效縮短了故障排除的歷時(shí)時(shí)長(zhǎng),也不會(huì)影響后續(xù)自增計(jì)數(shù)操作的執(zhí)行結(jié)果。通過(guò)上述技術(shù)方案可以獲知,本實(shí)施例中,針對(duì)同一個(gè)Key,在不同的自增操作流程中,服務(wù)終端選擇的協(xié)同服務(wù)器可能不相同,以及,在協(xié)同服務(wù)器發(fā)生故障時(shí),服務(wù)終端可以在副本服務(wù)器中重新選擇ー個(gè)作為協(xié)同服務(wù)器,因此,基于這種執(zhí)行方式,有可能出現(xiàn)以下情況協(xié)同服務(wù)器上對(duì)應(yīng)Key A保存的Value不是最新數(shù)據(jù),即協(xié)同服務(wù)器上對(duì)應(yīng)KeyA保存的Value的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),大于某一副本服務(wù)器上對(duì)應(yīng)Key A保存的Value的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),因此,協(xié)同服務(wù)器在執(zhí)行自增計(jì)數(shù)操作時(shí),便需要綜合考慮各副本服務(wù)器上對(duì)應(yīng)Key A保存的Value的相關(guān)/[目息,這一點(diǎn)將在后續(xù)實(shí)施例中進(jìn)行進(jìn)ー步介紹。參閱圖2所示,本發(fā)明實(shí)施例中,協(xié)同服務(wù)器第一通信単元20、獲取單元21、執(zhí)行 單元22和第二通信單元23,其中,第一通信単元20,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯用于指示操作內(nèi)容的標(biāo)識(shí)信息;獲取單元21,用于根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各副本服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果;執(zhí)行單元22,用于根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果;第二通信単元23,用于將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各副本服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的副本服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功。基于上述技術(shù)方案,參閱圖3所示,本發(fā)明實(shí)施例中,在分布式緩存系統(tǒng)內(nèi),實(shí)現(xiàn)自增計(jì)數(shù)操作的詳細(xì)流程如下步驟300 :服務(wù)終端發(fā)起計(jì)數(shù)器自增操作,向選定的協(xié)同服務(wù)器發(fā)送自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帯有自增計(jì)數(shù)操作對(duì)應(yīng)的標(biāo)識(shí)信息,即Key,以下稱(chēng)為KeyA0本發(fā)明實(shí)施例中,服務(wù)終端可以根據(jù)Key A表示的自增計(jì)數(shù)操作內(nèi)容選擇一臺(tái)服務(wù)器節(jié)點(diǎn),并將自增計(jì)數(shù)請(qǐng)求消息發(fā)送至選定的服務(wù)器,該選定的服務(wù)器被稱(chēng)作本次操作的協(xié)同服務(wù)器,對(duì)于不同的Key,服務(wù)終端選定的協(xié)同服務(wù)器可能相同,也可能不同。例如,服務(wù)終端為商店的監(jiān)視器,當(dāng)該監(jiān)視器確定有新的顧客進(jìn)入商店吋,向后臺(tái)選定的一臺(tái)協(xié)同服務(wù)器發(fā)送自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帶的Key A表示當(dāng)前自增計(jì)數(shù)操作內(nèi)容為“進(jìn)入商店的顧客總數(shù)目”。步驟310 :協(xié)同服務(wù)器根據(jù)獲得的Key A,獲取本地對(duì)應(yīng)Key A存儲(chǔ)的計(jì)數(shù)結(jié)果,即Value,以及獲取各副本服務(wù)器上對(duì)應(yīng)Key A存儲(chǔ)的Value。在執(zhí)行步驟310時(shí),協(xié)同服務(wù)器接收到服務(wù)終端發(fā)送的攜帯有Key的自增計(jì)數(shù)請(qǐng)求消息后,嘗試從本地讀取該Key對(duì)應(yīng)的Value,井向同樣保存有該Key的服務(wù)器發(fā)送副本讀取請(qǐng)求消息,其中,同樣保存有上述Key的服務(wù)器在稱(chēng)為本次操作的副本服務(wù)器,具體為協(xié)同服務(wù)器向KeyA對(duì)應(yīng)的各副本服務(wù)器發(fā)送副本獲取請(qǐng)求消息,該副本獲取請(qǐng)求消息中至少攜帶有Key A,令部分/全部副本服務(wù)器返回其本地對(duì)應(yīng)Key A保存的Value,具體實(shí)現(xiàn)方式包含但不限于以下兩種A、協(xié)同服務(wù)器向Key A對(duì)應(yīng)的各副本服務(wù)器發(fā)送攜帶Key A的副本獲取請(qǐng)求消息,每一個(gè)副本服務(wù)器接收到Key A后,均將Key A及本地對(duì)應(yīng)Key A保存的Value返回至協(xié)同服務(wù)器(副本服務(wù)器向協(xié)同服務(wù)器返回Key A,是為了令協(xié)同服務(wù)器明確接收的是哪個(gè)Key的value)。通過(guò)執(zhí)行方式A,可以獲得最全面的數(shù)據(jù),從而執(zhí)行最為準(zhǔn)確的自增計(jì)數(shù)操作。
另一方面,若接收到攜帶上述Key的副本獲取請(qǐng)求消息的副本服務(wù)器上未保存有對(duì)應(yīng)該Key的Value,則副本服務(wù)器向協(xié)同服務(wù)器通知未保存有相關(guān)數(shù)據(jù)即可,在此不再贅述。B、協(xié)同服務(wù)器向Key A對(duì)應(yīng)的各副本服務(wù)器發(fā)送攜帶Key A及相應(yīng)Value (協(xié)同服務(wù)器保存的Value)的副本獲取請(qǐng)求消息,每一個(gè)副本服務(wù)器接收到Key A和Value后,均判斷本地對(duì)應(yīng)Key A保存的Value的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)是否小于接收的Value的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),若是,則向協(xié)同服務(wù)器返回Key A及本地對(duì)應(yīng)Key A保存的Value,否則,僅向協(xié)同服務(wù)器返回Key A。通過(guò)執(zhí)行方式B,可以有效降低網(wǎng)絡(luò)數(shù)據(jù)流量,減輕網(wǎng)絡(luò)運(yùn)行負(fù)荷。實(shí)際應(yīng)用中,無(wú)論執(zhí)行方式A還是方式B,為了提高處理效率,同時(shí)為了避免因某些副本服務(wù)器出現(xiàn)臨時(shí)故障而導(dǎo)致自增計(jì)數(shù)操作中斷,較佳的,協(xié)同服務(wù)器發(fā)送副本獲取請(qǐng)求消息后,不必等到接收到全部副本服務(wù)器的反饋信息后再執(zhí)行后續(xù)操作,而是在確定返回Key A及相應(yīng)Value或/和返回Key A的副本服務(wù)器的數(shù)目達(dá)到設(shè)定的門(mén)限值(稱(chēng)為門(mén)限值X)時(shí),便開(kāi)始執(zhí)行后續(xù)操作,即協(xié)同服務(wù)器發(fā)送副本獲取請(qǐng)求消息后,確定針對(duì)該副本獲取請(qǐng)求消息進(jìn)行反饋的副本服務(wù)器的數(shù)目達(dá)到門(mén)限值X,則開(kāi)始執(zhí)行步驟320。步驟320 :協(xié)同服務(wù)器根據(jù)獲得的各Value中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的Value執(zhí)行自增計(jì)數(shù)操作,獲得更新后的Value。本發(fā)明實(shí)施例中,在步驟320中,協(xié)同服務(wù)器判斷Value的更新時(shí)間與當(dāng)前時(shí)間之間的時(shí)長(zhǎng)的方式有多種,例如,根據(jù)對(duì)應(yīng)Value記錄的時(shí)間戳來(lái)確定其更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),時(shí)間截記錄的時(shí)間越晚,表示更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)越短;又例如,據(jù)對(duì)應(yīng)Value記錄的版本號(hào)來(lái)確定其更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),版本號(hào)越大,表示更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)越短;這兩種實(shí)現(xiàn)方式僅為舉例,但并不局限于這兩種實(shí)現(xiàn)方式,在此不再贅述。協(xié)同服務(wù)器在進(jìn)行自增計(jì)數(shù)操作時(shí)均執(zhí)行上述判斷操作,可以有效保證自增計(jì)數(shù)操作中系統(tǒng)的數(shù)據(jù)一致性,從而保證更新后的Value的準(zhǔn)確性。另一方面,若在步驟300中,多個(gè)服務(wù)終端向協(xié)同服務(wù)器發(fā)送針對(duì)同一自增計(jì)數(shù)器的自增計(jì)數(shù)請(qǐng)求消息,即協(xié)同服務(wù)器接收到來(lái)自于多個(gè)服務(wù)終端的攜帶有相同Key的自增計(jì)數(shù)請(qǐng)求消息,則協(xié)同服務(wù)器需要先將接收的多個(gè)自增計(jì)數(shù)請(qǐng)求消息指示的自增數(shù)目進(jìn)行合并,再執(zhí)行后續(xù)操作;其中,合并操作可以在接收到自增計(jì)數(shù)請(qǐng)求消息后立即執(zhí)行,也可以在獲得各Value后,在進(jìn)行自增計(jì)數(shù)操作之前執(zhí)行,在此不再贅述。例如,若協(xié)同服務(wù)器接收到來(lái)自于100個(gè)服務(wù)終端的攜帶Key A的自增計(jì)數(shù)請(qǐng)求消息,每條自增計(jì)數(shù)請(qǐng)求消息均請(qǐng)求自增數(shù)目為1,則協(xié)同服務(wù)器將自增數(shù)目合并為100后,再對(duì)當(dāng)前獲取的最新的Value進(jìn)行自增計(jì)數(shù)操作,即在當(dāng)前最新的Value上添加100作為更新后的Value ;相應(yīng)的,協(xié)同服務(wù)器在向任意一服務(wù)終端反饋更新的Value時(shí),只需要減去其他服務(wù)終端請(qǐng)求的自增數(shù)目即可。這樣,現(xiàn)有技術(shù)下需要進(jìn)行一百次的操作在本實(shí)施例中可以一次性解決,大大節(jié)省了自增計(jì)數(shù)操作的操作時(shí)間,提高了自增計(jì)數(shù)操作的執(zhí)行效率,步驟330 :協(xié)同服務(wù)器將更新后的Value發(fā)往各副本服務(wù)器進(jìn)行備份,較佳的,應(yīng)當(dāng)將KeyA和更新后的Value —同發(fā)送,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確認(rèn)當(dāng)前自增計(jì)數(shù)操作成功。在執(zhí)行步驟330的過(guò)程中,每一個(gè)副本服務(wù)器在接收到服務(wù)器發(fā)送的更新后的Value后,需判斷接收的更新后的Vlaue的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),是否小于副本服務(wù)器本地對(duì)應(yīng)Key A保存的Value的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),若是,則保存更新后的Value,并通知協(xié)同服務(wù)器備份成功;否則,不保存數(shù)據(jù),并通知協(xié)同服務(wù)器備份失敗。每一個(gè)副本服務(wù)器在進(jìn)行備份時(shí)均執(zhí)行上述判斷操作,可以加強(qiáng)自增計(jì)數(shù)操作中系統(tǒng)的數(shù)據(jù)一致性,從而保證更新后的Value的準(zhǔn)確性。較佳的,為了提高系統(tǒng)的執(zhí)行效率,協(xié)同服務(wù)器不必等到接收到全部副本服務(wù)器的反饋信息后再確定自增計(jì)數(shù)操作成功,而是在確認(rèn)備份 成功的副本服務(wù)器的數(shù)目達(dá)到設(shè)定的門(mén)限值(稱(chēng)為門(mén)限值Y)時(shí),便可確認(rèn)當(dāng)前自增計(jì)數(shù)操作成功,此處的門(mén)限值Y與之前記載的門(mén)限值X的取值可以相同,也可以不同。在上述實(shí)施例中,若選定的協(xié)同服務(wù)器發(fā)生故障,則服務(wù)終端可以根據(jù)針對(duì)各副本服務(wù)器預(yù)設(shè)的優(yōu)先級(jí),選擇優(yōu)先級(jí)符合條件的一個(gè)副本服務(wù)器作為新的協(xié)同服務(wù)器來(lái)執(zhí)行當(dāng)前的自增計(jì)數(shù)操作,不會(huì)影響最后的執(zhí)行結(jié)果,這樣,有效提高了分布式緩存系統(tǒng)的穩(wěn)定性和安全性。而若各副本服務(wù)器中的某些副本服務(wù)器發(fā)生故障,則只要未發(fā)生故障的副本服務(wù)器的數(shù)目達(dá)到門(mén)限值X或/和門(mén)限值Y,便不會(huì)影響自增計(jì)數(shù)操作的整體流程,即只要不影響協(xié)同服務(wù)器向各副本服務(wù)器獲取其保存的Value,以及不影響協(xié)同服務(wù)器接收備份服務(wù)器返回的表示自增計(jì)數(shù)操作成功的響應(yīng),則備份服務(wù)器的故障不會(huì)影響分布式緩存系統(tǒng)中的自增計(jì)數(shù)器的工作性能。這樣,便進(jìn)一步有效提高了分布式緩存系統(tǒng)的穩(wěn)定性和安全性?;谏鲜鰧?shí)施例,參閱圖4所示,假設(shè)分布式緩存系統(tǒng)中設(shè)置有一個(gè)服務(wù)終端,一個(gè)協(xié)同服務(wù)器,以及兩個(gè)副本服務(wù)器,分別稱(chēng)為副本服務(wù)器I和副本服務(wù)器2,其中,協(xié)同服務(wù)器中保存的自增計(jì)數(shù)相關(guān)數(shù)據(jù)為Key B-ValueO,副本服務(wù)器I中保存的自增計(jì)數(shù)相關(guān)數(shù)據(jù)為Key B-Valuel,而副本服務(wù)器2中保存的自增計(jì)數(shù)相關(guān)數(shù)據(jù)為Key B-Value2,Key B表示“使用ATM終端的顧客數(shù)目”,ValueO取值為“ 150”、Valuel取值為“ 148”、Value2取值為“ 152”,則實(shí)現(xiàn)自增計(jì)數(shù)操作的具體流程如下步驟400 :服務(wù)終端向協(xié)同服務(wù)器發(fā)送攜帶Key B的自增計(jì)數(shù)請(qǐng)求消息,假設(shè)請(qǐng)求自增的計(jì)數(shù)數(shù)目為I。步驟401 :協(xié)同服務(wù)器獲取本地對(duì)應(yīng)Key B保存的ValueO。步驟402 :協(xié)同服務(wù)器向副本服務(wù)器I發(fā)送至少攜帶Key B的副本獲取請(qǐng)求消息。步驟403 :協(xié)同服務(wù)器向副本服務(wù)器2發(fā)送至少攜帶Key B的副本獲取請(qǐng)求消息。步驟404 :副本服務(wù)器I獲取本地對(duì)應(yīng)Key B保存的Valuel。步驟405 :副本服務(wù)器2獲取本地對(duì)應(yīng)Key B保存的Value2。步驟406 :副本服務(wù)器2向協(xié)同服務(wù)器返回Value2。步驟407 :副本服務(wù)器I向協(xié)同服務(wù)器返回Valuel。
如圖4所示,本實(shí)施例中,步驟402、步驟404、步驟407,和步驟403、步驟405、步驟406可以是并行執(zhí)行或先后執(zhí)行的關(guān)系,在此并不限制其執(zhí)行順序。步驟408 :協(xié)同服務(wù)器比較ValueO、Valuel和Value2的更新時(shí)間,確定最新的計(jì)數(shù)結(jié)果為Value2,即取值為“152”。步驟409 :協(xié)同服務(wù)器基于Value2以及請(qǐng)求自增的計(jì)數(shù)數(shù)目執(zhí)行自增計(jì)數(shù)操作,獲得更新后的Value3,其取值為“153”。步驟410 :協(xié)同服務(wù)器向副本服務(wù)器I發(fā)送攜帶Value3的備份請(qǐng)求消息。步驟411 :協(xié)同服務(wù)器向副本服務(wù)器2發(fā)送攜帶Value3的備份請(qǐng)求消息。步驟412 :副本服務(wù)器I對(duì)應(yīng)Key B保存最新的Value3。步驟413 :副本服務(wù)器I向協(xié)同服務(wù)器返回操作成功響應(yīng)。 步驟414 :副本服務(wù)器2對(duì)應(yīng)Key B保存最新的Value3。步驟415 :副本服務(wù)器2向協(xié)同服務(wù)器返回操作成功響應(yīng)。如圖4所示,本實(shí)施例中,步驟410、步驟412、步驟413,和步驟411、步驟414、步驟415可以是并行執(zhí)行或先后執(zhí)行的關(guān)系,在此并不限制其執(zhí)行順序。步驟416 :協(xié)同服務(wù)器確定返回操作成功響應(yīng)的副本服務(wù)器達(dá)到預(yù)設(shè)門(mén)限值(如,門(mén)限值為I)。如圖4所示,本實(shí)施例中,在執(zhí)行步驟416時(shí),若協(xié)同服務(wù)器確定返回操作成功響應(yīng)的副本服務(wù)器未達(dá)到預(yù)設(shè)門(mén)限值,則可以返回步驟401進(jìn)行失敗重試,并在重試次數(shù)達(dá)到設(shè)定閾值且仍未成功執(zhí)行自增計(jì)數(shù)操作時(shí),結(jié)束當(dāng)前流程并對(duì)服務(wù)終端進(jìn)行告警,在此不再贅述。步驟417 :協(xié)同服務(wù)器向服務(wù)終端返回自增計(jì)數(shù)結(jié)果,即Value3。綜上所述,本發(fā)明實(shí)施例中,針對(duì)云計(jì)算領(lǐng)域分布式緩存系統(tǒng),提出了一種高效的分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法,具體為針對(duì)一個(gè)自增計(jì)數(shù)器在多個(gè)服務(wù)器上保存其計(jì)數(shù)結(jié)果的副本,每次執(zhí)行自增計(jì)數(shù)操作時(shí),在各服務(wù)器上針對(duì)同一自增計(jì)數(shù)器保存的計(jì)數(shù)結(jié)果中選取出最新的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,從而有效保證了計(jì)數(shù)結(jié)果的準(zhǔn)確性,同時(shí),只需確認(rèn)計(jì)數(shù)結(jié)果備份成功的服務(wù)器的數(shù)目達(dá)到設(shè)定閾值,便可確定當(dāng)前自增計(jì)數(shù)操作成功,從而在一定程度上提高了自增計(jì)數(shù)操作的執(zhí)行效率,并且當(dāng)某服務(wù)器出現(xiàn)故障時(shí)只要正常工作的服務(wù)器的數(shù)目達(dá)到設(shè)置的門(mén)限值,就不會(huì)影響分布式緩存系統(tǒng)的正常工作,進(jìn)而有效提高了分布式緩存系統(tǒng)的穩(wěn)定性、安全性及可用性;進(jìn)一步地,還可以對(duì)針對(duì)同一自增計(jì)數(shù)器的多個(gè)自增計(jì)數(shù)請(qǐng)求進(jìn)行合并處理,從而進(jìn)一步提高了自增計(jì)數(shù)操作的執(zhí)行效率。這樣,便滿(mǎn)足了分布式緩存系統(tǒng)對(duì)分布式自增計(jì)數(shù)器的可用性、高效性、并發(fā)性和準(zhǔn)確性的要求。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法,其特征在于,包括 第一服務(wù)器接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帶用于指示操作內(nèi)容的標(biāo)識(shí)信息; 第一服務(wù)器根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,其中,第一服務(wù)器和第二服務(wù)器互為備份; 第一服務(wù)器根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果; 第一服務(wù)器將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功。
2.如權(quán)利要求I所述的方法,其特征在于,若第一服務(wù)器接收到至少兩個(gè)服務(wù)終端發(fā)送的攜帶同一標(biāo)識(shí)信息的自增計(jì)數(shù)請(qǐng)求消息,則第一服務(wù)器將所述至少兩個(gè)自增計(jì)數(shù)請(qǐng)求消息指示的自增數(shù)目進(jìn)行合并后,再進(jìn)行后續(xù)操作。
3.如權(quán)利要求I所述的方法,其特征在于,第一服務(wù)器根據(jù)所述標(biāo)識(shí)信息,獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,包括 第一服務(wù)器向所述標(biāo)識(shí)信息對(duì)應(yīng)的各第二服務(wù)器,發(fā)送攜帶該標(biāo)識(shí)信息的副本獲取請(qǐng)求消息,令每一個(gè)接收到所述標(biāo)識(shí)信息的第二服務(wù)器,向第一服務(wù)器返回所述標(biāo)識(shí)信息及第二服務(wù)器本地對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果; 或者, 第一服務(wù)器向所述標(biāo)識(shí)信息對(duì)應(yīng)的各第二服務(wù)器,發(fā)送攜帶該標(biāo)識(shí)信息及第一服務(wù)器對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果的副本獲取請(qǐng)求消息,令每一個(gè)接收到所述標(biāo)識(shí)信息和計(jì)數(shù)結(jié)果的第二服務(wù)器,在確定第二服務(wù)器本地對(duì)應(yīng)所述標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),小于接收的計(jì)數(shù)結(jié)果的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)時(shí),向第一服務(wù)器返回所述標(biāo)識(shí)信息及第二服務(wù)器本地對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果。
4.如權(quán)利要求3所述的方法,其特征在于,第一服務(wù)器發(fā)送副本獲取請(qǐng)求消息后,確定針對(duì)該副本獲取請(qǐng)求消息進(jìn)行反饋的副本服務(wù)器的數(shù)目達(dá)到預(yù)設(shè)門(mén)限值時(shí),根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作。
5.如權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,第一服務(wù)器根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,包括 第一服務(wù)器根據(jù)獲得的各計(jì)數(shù)結(jié)果中,時(shí)間截指示時(shí)間最晚的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作; 或者, 第一服務(wù)器根據(jù)獲得的各計(jì)數(shù)結(jié)果中,版本號(hào)最大的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作。
6.如權(quán)利要求5所述的方法,其特征在于,若服務(wù)終端確定協(xié)同服務(wù)器發(fā)生故障,則根據(jù)針對(duì)各副本服務(wù)器預(yù)設(shè)的優(yōu)先級(jí),選擇優(yōu)先級(jí)符合條件的一個(gè)副本服務(wù)器作為新的協(xié)同服務(wù)器。
7.一種分布式自增計(jì)數(shù)的實(shí)現(xiàn)裝置,其特征在于,包括 第一通信單元,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帶用于指示操作內(nèi)容的標(biāo)識(shí)信息;獲取單元,用于根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,其中,本裝置和第二服務(wù)器互為備份; 執(zhí)行單元,用于根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果; 第二通信單元,用于將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功。
8.如權(quán)利要求7所述的裝置,其特征在于,若所述第一通信單元接收到至少兩個(gè)服務(wù)終端發(fā)送的攜帶同一標(biāo)識(shí)信息的自增計(jì)數(shù)請(qǐng)求消息,則所述第一通信單元將所述至少兩個(gè)自增計(jì)數(shù)請(qǐng)求消息指示的自增數(shù)目進(jìn)行合并后,再進(jìn)行后續(xù)操作。
9.如權(quán)利要求7所述的裝置,其特征在于,所述獲取單元根據(jù)所述標(biāo)識(shí)信息,獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,包括 所述獲取單元通過(guò)所述第二通信單元向所述標(biāo)識(shí)信息對(duì)應(yīng)的各第二服務(wù)器,發(fā)送攜帶該標(biāo)識(shí)信息的副本獲取請(qǐng)求消息,令每一個(gè)接收到所述標(biāo)識(shí)信息的第二服務(wù)器,向本裝置返回所述標(biāo)識(shí)信息及第二服務(wù)器本地對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果; 或者, 所述獲取單元通過(guò)所述第二通信單元向所述標(biāo)識(shí)信息對(duì)應(yīng)的各第二服務(wù)器,發(fā)送攜帶該標(biāo)識(shí)信息及本裝置對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果的副本獲取請(qǐng)求消息,令每一個(gè)接收到所述標(biāo)識(shí)信息和計(jì)數(shù)結(jié)果的第二服務(wù)器,在確定第二服務(wù)器本地對(duì)應(yīng)所述標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng),小于接收的計(jì)數(shù)結(jié)果的更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)時(shí),向本裝置返回所述標(biāo)識(shí)信息及第二服務(wù)器本地對(duì)應(yīng)該標(biāo)識(shí)信息保存的計(jì)數(shù)結(jié)果。
10.如權(quán)利要求9所述的裝置,其特征在于,所述獲取單元通過(guò)所述第二通信單元發(fā)送副本獲取請(qǐng)求消息后,所述執(zhí)行單元確定針對(duì)該副本獲取請(qǐng)求消息進(jìn)行反饋的副本服務(wù)器的數(shù)目達(dá)到預(yù)設(shè)門(mén)限值時(shí),根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作。
11.如權(quán)利要求7-10任一項(xiàng)所述的裝置,其特征在于,所述執(zhí)行單元根據(jù)獲得的各計(jì)數(shù)結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,包括 所述執(zhí)行單元根據(jù)獲得的各計(jì)數(shù)結(jié)果中,時(shí)間截指示時(shí)間最晚的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作; 或者, 所述執(zhí)行單元根據(jù)獲得的各計(jì)數(shù)結(jié)果中,版本號(hào)最大的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作。
12.—種分布式自增計(jì)數(shù)的實(shí)現(xiàn)系統(tǒng),其特征在于,包括互為備份的第一服務(wù)器和第二服務(wù)器,其中, 第一服務(wù)器,用于接收服務(wù)終端發(fā)送的自增計(jì)數(shù)請(qǐng)求消息,該自增計(jì)數(shù)請(qǐng)求消息中攜帶用于指示操作內(nèi)容的標(biāo)識(shí)信息,根據(jù)所述標(biāo)識(shí)信息,獲取本地對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,以及獲取各第二服務(wù)器上對(duì)應(yīng)該標(biāo)識(shí)信息存儲(chǔ)的計(jì)數(shù)結(jié)果,并根據(jù)獲得的各計(jì)數(shù) 結(jié)果中更新時(shí)間距當(dāng)前時(shí)間的時(shí)長(zhǎng)最小的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,獲得更新后的計(jì)數(shù)結(jié)果,再將所述更新后的計(jì)數(shù)結(jié)果發(fā)往各第二服務(wù)器進(jìn)行備份,并在確認(rèn)超過(guò)設(shè)定數(shù)目的第二服務(wù)器備份成功時(shí),確定當(dāng)前自增計(jì)數(shù)操作成功;第二服務(wù)器,用于根據(jù)第一服務(wù)器發(fā)送的標(biāo)識(shí)信息,向第一服務(wù)器返回本地對(duì)應(yīng)所述標(biāo)識(shí) 信息保存的計(jì)數(shù)結(jié)果,以及對(duì)第一服務(wù)器發(fā)送的更新后的計(jì)數(shù)結(jié)果進(jìn)行備份,并向第一服務(wù)器返回備份結(jié)果。
全文摘要
本發(fā)明涉及云計(jì)算領(lǐng)域,公開(kāi)了一種分布式自增計(jì)數(shù)的實(shí)現(xiàn)方法、裝置及系統(tǒng),用以提高分布式自增計(jì)數(shù)的執(zhí)行效率,提升計(jì)數(shù)結(jié)果的準(zhǔn)確性。該方法為在云計(jì)算領(lǐng)域分布式緩存系統(tǒng)中,針對(duì)一個(gè)自增計(jì)數(shù)器在多個(gè)服務(wù)器上保存其計(jì)數(shù)結(jié)果的副本,每次執(zhí)行自增計(jì)數(shù)操作時(shí),在各服務(wù)器上針對(duì)同一自增計(jì)數(shù)器保存的計(jì)數(shù)結(jié)果中選取出最新的計(jì)數(shù)結(jié)果執(zhí)行自增計(jì)數(shù)操作,從而有效保證了計(jì)數(shù)結(jié)果的準(zhǔn)確性,同時(shí),只需確認(rèn)計(jì)數(shù)結(jié)果備份成功的服務(wù)器的數(shù)目達(dá)到設(shè)定閾值,便可確定當(dāng)前自增計(jì)數(shù)操作成功,從而在一定程度上提高了自增計(jì)數(shù)操作的執(zhí)行效率。
文檔編號(hào)H04L29/08GK102833281SQ20111016042
公開(kāi)日2012年12月19日 申請(qǐng)日期2011年6月15日 優(yōu)先權(quán)日2011年6月15日
發(fā)明者陳典強(qiáng), 郭斌, 韓銀俊 申請(qǐng)人:中興通訊股份有限公司