多平臺(tái)數(shù)據(jù)共享系統(tǒng)及其數(shù)據(jù)共享方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種多平臺(tái)數(shù)據(jù)共享系統(tǒng)及其數(shù)據(jù)共享方法。
【背景技術(shù)】
[0002]不同業(yè)務(wù)平臺(tái)的內(nèi)存共享一直是當(dāng)前研究的熱門話題,大多采用http,tcp,udp等基礎(chǔ)通信方式進(jìn)行信息交互。但是,由于不同平臺(tái)的服務(wù)器內(nèi)存數(shù)據(jù)管理方式不盡相同,單純依靠內(nèi)存互相訪問是無法做到的。另外,還可通過數(shù)據(jù)庫共享數(shù)據(jù),數(shù)據(jù)庫的優(yōu)勢自不必說,但他的缺點(diǎn)是數(shù)據(jù)交互過于緩慢,特別難以滿足數(shù)據(jù)更新交互比較頻繁的業(yè)務(wù)。
[0003]相關(guān)技術(shù)中,由于服務(wù)器上的內(nèi)存是按照一定邏輯結(jié)構(gòu)封閉存儲(chǔ),其他服務(wù)器無法訪問,能與其他服務(wù)器共享內(nèi)存就顯得必要,如圖1所示的服務(wù)器邏輯構(gòu)架,A服務(wù)器用于接收處理應(yīng)用客戶端的數(shù)據(jù),具體數(shù)據(jù)變化邏輯(比如游戲中虛擬位置,活性狀態(tài),輸出,金幣經(jīng)驗(yàn)等),這些交互量小,結(jié)構(gòu)邏輯性強(qiáng),且次數(shù)異常頻繁,如客戶端A(Client-A)向A服務(wù)器傳輸數(shù)據(jù)的交互方式。A服務(wù)器處理完成以后會(huì)將最終的數(shù)據(jù)存儲(chǔ)入數(shù)據(jù)庫中,并通知B服務(wù)器將其讀取出來(由于這里實(shí)現(xiàn)的2種服務(wù)器之間是弱交互的),為節(jié)約開發(fā)成本,這里B服務(wù)器一般會(huì)采用定時(shí)刷新提取數(shù)據(jù),而客戶端每次通過B服務(wù)器拉取數(shù)據(jù)時(shí),都會(huì)不停訪問數(shù)據(jù)庫,這樣一來將無形的給數(shù)據(jù)庫的訪問增加了巨大的壓力,同時(shí)每次訪問數(shù)據(jù)庫的時(shí)間也是相當(dāng)長的,不適宜過于頻繁的訪問數(shù)據(jù)之類的業(yè)務(wù)交互。
【發(fā)明內(nèi)容】
[0004]本發(fā)明公開了一種多平臺(tái)數(shù)據(jù)共享系統(tǒng)及其數(shù)據(jù)共享方法,以至少解決相關(guān)技術(shù)中采用傳統(tǒng)服務(wù)器邏輯構(gòu)架,每次訪問數(shù)據(jù)庫的時(shí)間很長,不適宜過于頻繁的訪問數(shù)據(jù)之類的業(yè)務(wù)交互的問題。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種多平臺(tái)數(shù)據(jù)共享系統(tǒng)。
[0006]根據(jù)本發(fā)明的多平臺(tái)數(shù)據(jù)共享系統(tǒng)包括:內(nèi)存服務(wù)器;對上述內(nèi)存服務(wù)器查詢數(shù)據(jù)、加載數(shù)據(jù)、和更新數(shù)據(jù)的主服務(wù)器,與上述內(nèi)存服務(wù)器相連接;對上述內(nèi)存服務(wù)器查詢數(shù)據(jù)、加載數(shù)據(jù)的至少一個(gè)從服務(wù)器,與上述主服務(wù)器和上述內(nèi)存服務(wù)器相連接;數(shù)據(jù)庫服務(wù)器,與上述主服務(wù)器和上述一個(gè)或多個(gè)從服務(wù)器相連接。
[0007]根據(jù)本發(fā)明的另一方面,提供了一種多平臺(tái)數(shù)據(jù)共享方法。
[0008]根據(jù)本發(fā)明的多平臺(tái)數(shù)據(jù)共享方法包括:主服務(wù)器在處理數(shù)據(jù)之后,將數(shù)據(jù)寫入數(shù)據(jù)庫服務(wù)器的同時(shí),同步更新上述內(nèi)存服務(wù)器中以鍵值形式存在的數(shù)據(jù);上述主服務(wù)器以廣播方式通知至少一個(gè)從服務(wù)器有數(shù)據(jù)更新;上述至少一個(gè)從服務(wù)器在需要獲取當(dāng)前最新數(shù)據(jù)時(shí),直接從上述內(nèi)存服務(wù)器中提取上述最新數(shù)據(jù)。
[0009]通過本發(fā)明,采用混合的主內(nèi)存輔數(shù)據(jù)庫的設(shè)計(jì)模型,可以減少多臺(tái)不同種類、平臺(tái)的服務(wù)器之間的內(nèi)存?zhèn)浞荩诒WC內(nèi)存服務(wù)器的數(shù)據(jù)真實(shí)有效的前提下,最小程度的拖累對數(shù)據(jù)庫的依賴,這種方式降低了數(shù)據(jù)庫的訪問壓力,能極大的提高了客戶端刷新數(shù)據(jù)的時(shí)間。
【附圖說明】
[0010]圖1是根據(jù)相關(guān)技術(shù)的服務(wù)器邏輯構(gòu)架的示意圖;
[0011]圖2是根據(jù)本發(fā)明實(shí)施例的多平臺(tái)數(shù)據(jù)共享系統(tǒng)的結(jié)構(gòu)框圖;
[0012]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的多平臺(tái)數(shù)據(jù)共享系統(tǒng)的示意圖;以及
[0013]圖4是根據(jù)本發(fā)明實(shí)施例的多平臺(tái)數(shù)據(jù)共享系統(tǒng)的數(shù)據(jù)共享方法的流程圖。
【具體實(shí)施方式】
[0014]下面結(jié)合說明書附圖對本發(fā)明的具體實(shí)現(xiàn)方式做一詳細(xì)描述。
[0015]圖2是根據(jù)本發(fā)明實(shí)施例的多平臺(tái)數(shù)據(jù)共享系統(tǒng)的結(jié)構(gòu)框圖。如圖2所示,該多平臺(tái)數(shù)據(jù)共享系統(tǒng)包括:內(nèi)存服務(wù)器20 ;對上述內(nèi)存服務(wù)器查詢數(shù)據(jù)、加載數(shù)據(jù)、和更新數(shù)據(jù)的主服務(wù)器21,與上述內(nèi)存服務(wù)器相連接;對上述內(nèi)存服務(wù)器查詢數(shù)據(jù)、加載數(shù)據(jù)的至少一個(gè)從服務(wù)器22,與上述主服務(wù)器21和上述內(nèi)存服務(wù)器20相連接;數(shù)據(jù)庫服務(wù)器23,與上述主服務(wù)器21和上述一個(gè)或多個(gè)從服務(wù)器22相連接。
[0016]采用圖2所示的多平臺(tái)數(shù)據(jù)共享系統(tǒng),可以減少多臺(tái)不同種類、平臺(tái)的服務(wù)器之間的內(nèi)存?zhèn)浞?,在保證內(nèi)存服務(wù)器的數(shù)據(jù)真實(shí)有效的前提下,最小程度的拖累對數(shù)據(jù)庫的依賴,這種方式降低了數(shù)據(jù)庫的訪問壓力,能極大的提高了客戶端刷新數(shù)據(jù)的時(shí)間。
[0017]在優(yōu)選實(shí)施過程中,主服務(wù)器作用為:查詢內(nèi)存服務(wù)器數(shù)據(jù)信息,加載數(shù)據(jù)到內(nèi)存服務(wù)器,更新內(nèi)存服務(wù)器;從服務(wù)器作用為:查詢內(nèi)存服務(wù)器數(shù)據(jù)信息,加載數(shù)據(jù)到內(nèi)存服務(wù)器。主從服務(wù)器都擁有讀取數(shù)據(jù)的功能,為防止多方同時(shí)更新并發(fā)內(nèi)存導(dǎo)致的臟數(shù)據(jù),既定主服務(wù)器才擁有寫入權(quán)限,即一方寫入多方讀取的模式。
[0018]優(yōu)選地,上述內(nèi)存服務(wù)器中存儲(chǔ)的數(shù)據(jù)具有預(yù)設(shè)的生命周期,上述生命周期從對該數(shù)據(jù)的最新一次操作時(shí)間開始計(jì)算,當(dāng)上述生命周期結(jié)束時(shí),上述內(nèi)存服務(wù)器釋放該數(shù)據(jù);且當(dāng)上述內(nèi)存服務(wù)器重啟時(shí),重新分配內(nèi)存,需要重新加載數(shù)據(jù)。
[0019]優(yōu)選地,在上述主服務(wù)器和上述至少一個(gè)從服務(wù)器讀取上述內(nèi)存服務(wù)器中的數(shù)據(jù)失敗時(shí),上述主服務(wù)器和上述至少一個(gè)從服務(wù)器以動(dòng)態(tài)觸發(fā)方式從上述數(shù)據(jù)庫服務(wù)器中提取數(shù)據(jù)加載至上述內(nèi)存服務(wù)器。
[0020]在主從服務(wù)器讀取數(shù)據(jù)失敗后以動(dòng)態(tài)觸發(fā)的方式從數(shù)據(jù)庫中提取出來加載到內(nèi)存服務(wù)器中,讀取數(shù)據(jù)會(huì)失敗的原因如下,因?yàn)閮?nèi)存服務(wù)器的內(nèi)存容量有限,所以對內(nèi)存的數(shù)據(jù)設(shè)定了一個(gè)生命周期,當(dāng)最后一次操作時(shí)間(例如讀操作或?qū)懖僮?起算,生命周期結(jié)束時(shí),服務(wù)器會(huì)自動(dòng)將其釋放掉。此外,服務(wù)器重啟時(shí)也會(huì)重新分配內(nèi)存,這就需要從指定的數(shù)據(jù)庫中提取基礎(chǔ)數(shù)據(jù),這種主內(nèi)存輔數(shù)據(jù)庫的設(shè)計(jì)模型,控制多臺(tái)服務(wù)器并發(fā)寫入,并且在保證內(nèi)存服務(wù)器的數(shù)據(jù)真實(shí)有效的前提下,最小程度的拖累對數(shù)據(jù)庫的依賴。
[0021]優(yōu)選地,上述多平臺(tái)數(shù)據(jù)共享系統(tǒng)還可以包括:至少一個(gè)第一客戶端;上述主服務(wù)器,設(shè)置于接收來自于上述至少一個(gè)第一客戶端的數(shù)據(jù),并對接收到的數(shù)據(jù)進(jìn)行處理,將處理后的數(shù)據(jù)寫入數(shù)據(jù)庫服務(wù)器的同時(shí),同步更新上述內(nèi)存服務(wù)器中以鍵值形式存在的數(shù)據(jù)。
[0022]優(yōu)選地,主服務(wù)器,設(shè)置于在同步更新上述內(nèi)存服務(wù)器中以鍵值形式存在的數(shù)據(jù)之后,以廣播方式通知上述至少一個(gè)從服務(wù)器;上述至少一個(gè)從服務(wù)器中的一個(gè)或多個(gè)服務(wù)器,設(shè)置于在需要獲取當(dāng)前最新數(shù)據(jù)時(shí),直接從上述內(nèi)存服務(wù)器中提取上述最新數(shù)據(jù)。
[0023]優(yōu)選地,上述多平臺(tái)數(shù)據(jù)共享系統(tǒng)還可以包括:至少一個(gè)第二客戶端,其中,上述至少一個(gè)第二客戶端,在上述至少一個(gè)從服務(wù)器中的一個(gè)或多個(gè)服務(wù)器從上述內(nèi)存服務(wù)器中提取上述最新數(shù)據(jù)之后,接收上述一個(gè)或多個(gè)服務(wù)器中傳輸?shù)纳鲜鲎钚聰?shù)據(jù)。
[0024]以下結(jié)合圖3進(jìn)一步描述上述優(yōu)選實(shí)施方式。
[0025]圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的多平臺(tái)數(shù)據(jù)共享系統(tǒng)的示意圖。如圖3所示,該多平臺(tái)數(shù)據(jù)共享系統(tǒng)包括:內(nèi)存服務(wù)器、主服務(wù)器、從服務(wù)器(圖中示出一個(gè))、數(shù)據(jù)庫服務(wù)器、第一客戶端(圖3中的Client-A)、第二客戶端(圖3中的Client-B)。
[0026]在優(yōu)選實(shí)施過程中,主服務(wù)器接收到來自于至少一個(gè)第一客戶端的數(shù)據(jù),在處理數(shù)據(jù)以后將數(shù)據(jù)寫入數(shù)據(jù)庫的同時(shí),同步內(nèi)存服務(wù)器中存在的鍵值(內(nèi)存中的數(shù)據(jù)是以key-value方式處理),這樣就能保證內(nèi)存服務(wù)器中存儲(chǔ)的數(shù)據(jù)為有效數(shù)據(jù),主服務(wù)器并通