基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系統(tǒng),解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步,由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的技術問題。本發(fā)明實施例基于客戶端的服務器之間數(shù)據(jù)同步方法包括:獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包;將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理;獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。
【專利說明】
基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系統(tǒng)
技術領域
[0001] 本發(fā)明涉及數(shù)據(jù)同步技術領域,尤其涉及一種基于客戶端的服務器之間數(shù)據(jù)同步 方法、客戶端及系統(tǒng)。
【背景技術】
[0002] 數(shù)據(jù)同步是指多個終端之間基于服務器進行數(shù)據(jù)同步與信息共享,使多個終端的 數(shù)據(jù)保持完整性和統(tǒng)一性。隨著通信技術的快速發(fā)展,對終端中的相關信息的管理顯得尤 為重要,尤其對于互聯(lián)網(wǎng)交互應用產(chǎn)品如何安全有效的將更新數(shù)據(jù)同步到服務器的功能的 服務器中的時候已經(jīng)成為了本領域技術人員備受關注的技術主題。
[0003] 目前的客戶端在基于互聯(lián)網(wǎng)的大環(huán)境下進行如游戲或交互性應用產(chǎn)品操作時,在 應用中存在多種服務功能或類型的數(shù)據(jù)不斷更新操作,通常的做法當客戶端的服務功能或 類型的數(shù)據(jù)更新時,需要通過服務器進行處理再轉(zhuǎn)發(fā),服務器的轉(zhuǎn)發(fā)有兩種,一種為將數(shù)據(jù) 更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步。
[0004] 然而上述的將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步,由 于同步具有一定延時,導致了不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的技 術問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系 統(tǒng),解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步, 由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的 技術問題。
[0006] 本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法,包括:
[0007] 獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包;
[0008] 將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理;
[0009] 獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。
[0010] 優(yōu)選地,獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包之 前還包括:
[0011] 獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令;
[0012] 將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至所述第一服 務器進行應用服務數(shù)據(jù)更新處理。
[0013] 優(yōu)選地,將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至所述 第一服務器進行應用服務數(shù)據(jù)更新處理具體包括:
[0014] 將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息格式 處理;
[0015] 將進行所述安全消息格式處理后的所述應用服務數(shù)據(jù)更新請求通過protobuf協(xié) 議發(fā)送至所述第一服務器進行應用服務數(shù)據(jù)更新處理。
[0016] 優(yōu)選地,獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包具體 包括:
[0017] 當預置時間段未獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響 應包時,則再次將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步 處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍。
[0018] 優(yōu)選地,所述安全消息格式包括待傳輸消息數(shù)據(jù)及對應的數(shù)據(jù)簽名。
[0019] 本發(fā)明實施例提供的一種用于服務器之間數(shù)據(jù)同步的客戶端,包括:
[0020] 第一獲取單元,用于獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更 新響應包;
[0021] 轉(zhuǎn)發(fā)單元,用于將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù) 更新同步處理;
[0022]第二獲取單元,用于獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步 響應包。
[0023] 優(yōu)選地,客戶端還包括:
[0024] 第三獲取單元,用于獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令;
[0025] 發(fā)送單元,用于將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送 至所述第一服務器進行應用服務數(shù)據(jù)更新處理。
[0026]優(yōu)選地,發(fā)送單元具體包括:
[0027] 消息格式處理子單元,用于將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更 新請求進行安全消息格式處理,所述安全消息格式包括待傳輸消息數(shù)據(jù)及對應的數(shù)據(jù)簽 名;
[0028] 發(fā)送子單元,用于將進行所述安全消息格式處理后的所述應用服務數(shù)據(jù)更新請求 通過protobuf協(xié)議發(fā)送至所述第一服務器進行應用服務數(shù)據(jù)更新處理。
[0029] 優(yōu)選地,第二獲取單元,具體用于當預置時間段未獲取到所述第二服務器同步處 理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包時,則再次將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù) 的第二服務器進行數(shù)據(jù)更新同步處理,并將重試間隔時間設置為前一次重試間隔時間的雙 倍。
[0030] 本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步系統(tǒng),包括:
[0031] 若干個服務器,以及本實施例中提及的任意一種所述的用于服務器之間數(shù)據(jù)同步 的客戶端;
[0032] 若干個所述服務器與用于服務器之間數(shù)據(jù)同步的客戶端建立有通信連接關系。
[0033] 從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0034] 本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系 統(tǒng),其中,基于客戶端的服務器之間數(shù)據(jù)同步方法包括:獲取到第一服務器根據(jù)應用服務數(shù) 據(jù)更新請求返回的數(shù)據(jù)更新響應包;將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進 行數(shù)據(jù)更新同步處理;獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。本 實施例中,通過客戶端獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應 包,再將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理,最后獲 取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包,實現(xiàn)了多個服務器之間的數(shù) 據(jù)同步,解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同 步,由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差 的技術問題。
[0035] 進一步地,當預置時間段未獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同 步響應包時,則再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步 處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍,大大地降低了服務的負載,有 效地避免了服務器防止服務器由于過載無法工作的技術問題。
[0036] 進一步地,將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息 格式處理的技術方案,防止了數(shù)據(jù)在傳輸過程中被惡意篡改。
【附圖說明】
[0037] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其它的附圖。
[0038] 圖1為本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法的一個實 施例的流程示意圖;
[0039] 圖2為本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法的另一個 實施例的流程示意圖;
[0040] 圖3為本發(fā)明實施例提供的一種用于服務器之間數(shù)據(jù)同步的客戶端的一個實施例 的結(jié)構(gòu)示意圖;
[0041] 圖4為本發(fā)明實施例提供的一種用于服務器之間數(shù)據(jù)同步的客戶端的另一個實施 例的結(jié)構(gòu)示意圖;
[0042] 圖5為本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步系統(tǒng)的一個實 施例的結(jié)構(gòu)示意圖;
[0043] 圖6為圖2應用例示意圖。
【具體實施方式】
[0044] 本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法、客戶端及系 統(tǒng),解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步, 由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的 技術問題。
[0045] 為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明 實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述 的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例。基于本發(fā)明中的實施例,本領域 普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護 的范圍。
[0046] 請參閱圖1,本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步方法的 一個實施例包括:
[0047] 101、獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包;
[0048] 本實施例中,當多個協(xié)同服務器之間需要進行數(shù)據(jù)同步的時候,首先需要獲取到 第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包。
[0049] 102、將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理;
[0050] 當獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包之后,需 要將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理。
[0051] 103、獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。
[0052]當將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理之 后,需要獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。
[0053]本實施例中,通過客戶端獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù) 據(jù)更新響應包,再將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處 理,最后獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包,實現(xiàn)了多個服務 器之間的數(shù)據(jù)同步,解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行 數(shù)據(jù)傳輸同步,由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致, 用戶體驗差的技術問題。
[0054] 上面是對基于客戶端的服務器之間數(shù)據(jù)同步方法進行的描述,下面將對具體過程 進行詳細的描述,請參閱圖2,本發(fā)明實施例提供的一種基于客戶端的服務器之間數(shù)據(jù)同步 方法的另一個實施例包括:
[0055] 201、獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令;
[0056] 本實施例中,當多個協(xié)同服務器之間需要進行數(shù)據(jù)同步的時候,首先需要獲取到 用戶觸發(fā)的應用服務數(shù)據(jù)更新指令,也就是用戶在客戶端對協(xié)同服務器中的一個服務器對 應的功能或業(yè)務進行了更新操作,便直接觸發(fā)了應用服務數(shù)據(jù)更新指令。
[0057] 202、將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至第一服務器 進行應用服務數(shù)據(jù)更新處理;
[0058] 當獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令之后,需要將應用服務數(shù)據(jù)更新指令 對應的應用服務數(shù)據(jù)更新請求發(fā)送至第一服務器進行應用服務數(shù)據(jù)更新處理。
[0059] 前述的將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至第一服務 器進行應用服務數(shù)據(jù)更新處理可以進一步如下步驟:
[0060] a)將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息格式處 理;
[0061] b)將進行安全消息格式處理后的應用服務數(shù)據(jù)更新請求通過protobuf協(xié)議發(fā)送 至第一服務器進行應用服務數(shù)據(jù)更新處理;
[0062] 服務器之間通過客戶端透傳的消息格式,采用protobuf協(xié)議格式,如下所示:
[0063]
[0064] 其中value是需要傳輸?shù)南?shù)據(jù),類型是字符串類型,賦予數(shù)據(jù)類型豐富的 protobuf數(shù)據(jù),從而達到傳輸任意類型的消息。signature是對value的簽名,采用shal簽名 算法,以防止在傳輸過程中被惡意篡改。
[0065] 203、獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包;
[0066] 當將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至第一服務器進 行應用服務數(shù)據(jù)更新處理之后,需要獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的 數(shù)據(jù)更新響應包。
[0067] 204、將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理;
[0068]當獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包之后,需 要將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理。
[0069] 205、判斷預置時間段是否獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同 步響應包,若否,則執(zhí)行步驟206;
[0070] 當將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理之 后,需要判斷預置時間段是否獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應 包,若否,則執(zhí)行步驟206。
[0071] 206、再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步 處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍。
[0072] 當預置時間段未獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包 時,則再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理,并 將重試間隔時間設置為前一次重試間隔時間的雙倍。
[0073] 下面以一具體應用場景進行詳細的描述,圖6所示,應用例包括:
[0074]首先,目前有一種應用產(chǎn)品是基于一個平臺,多個用戶通過互聯(lián)網(wǎng)進入該平臺進 行角色、游戲等功能操作,例如YY語音的微房產(chǎn)品等,其后臺服務器按功能主要劃分為三類 服務,分別為角色服務、房間服務和游戲道具服務。角色服務和游戲道具服務需要同步消息 或事件給房間服務。
[0075] 1)微房客戶端請求角色服務更新數(shù)據(jù)(如角色或昵稱);
[0076] 2)角色服務收到請求后,更新數(shù)據(jù)并回響應包給微房客戶端,響應包除了響應結(jié) 果外,還帶有需要同步給房間服務的數(shù)據(jù)和簽名,數(shù)據(jù)格式如上述協(xié)議所表示;
[0077] 3)微房客戶端收到響應包后,處理響應結(jié)果;
[0078] 4)微房客戶端將響應包的同步數(shù)據(jù)發(fā)送給房間服務,微房客戶端不需要關心數(shù)據(jù) 內(nèi)容;
[0079] 5)房間服務收到同步數(shù)據(jù)后,處理并回同步響應包給微房客戶端;
[0080] 6)微房客戶端如果在有限時間內(nèi)未收到同步響應包,將重試間隔時間變?yōu)殡p倍, 回到4)步驟,否則進行7);
[0081] 7)結(jié)束。
[0082] 利用微房客戶端作為各服務的協(xié)調(diào)者角色和為單個用戶自己服務的特點,簡單輕 松地實現(xiàn)了服務器之間安全可靠地同步數(shù)據(jù),從而達到狀態(tài)的一致性,又解耦了各服務。由 于微房客戶端是請求數(shù)據(jù)更新的源頭,故該方案將微房客戶端作為各服務的協(xié)調(diào)者,在請 求更新角色服務或游戲道具服務的數(shù)據(jù)時,同時也保證該更新同步到房間服務。從而保證 了服務器之間安全可靠地同步數(shù)據(jù),又解耦了各服務。
[0083]本實施例中,通過客戶端獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù) 據(jù)更新響應包,再將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處 理,最后獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包,實現(xiàn)了多個服務 器之間的數(shù)據(jù)同步,解決了目前服務器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行 數(shù)據(jù)傳輸同步,由于同步具有一定延時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致, 用戶體驗差的技術問題。
[0084]進一步地,當預置時間段未獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同 步響應包時,則再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步 處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍,大大地降低了服務的負載,有 效地避免了服務器防止服務器由于過載無法工作的技術問題。
[0085] 進一步地,將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息 格式處理的技術方案,防止了數(shù)據(jù)在傳輸過程中被惡意篡改。
[0086] 請參閱圖3,本發(fā)明實施例中提供的一種用于服務器之間數(shù)據(jù)同步的客戶端的一 個實施例包括:
[0087]第一獲取單元301,用于獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù) 據(jù)更新響應包;
[0088]轉(zhuǎn)發(fā)單元302,用于將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù) 更新同步處理;
[0089]第二獲取單元303,用于獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步 響應包。
[0090] 本實施例中,通過客戶端的第一獲取單元301獲取到第一服務器根據(jù)應用服務數(shù) 據(jù)更新請求返回的數(shù)據(jù)更新響應包,轉(zhuǎn)發(fā)單元302再將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù) 的第二服務器進行數(shù)據(jù)更新同步處理,最后第二獲取單元303獲取到第二服務器同步處理 數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包,實現(xiàn)了多個服務器之間的數(shù)據(jù)同步,解決了目前服務 器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步,由于同步具有一定延 時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的技術問題。
[0091] 上面是對用于服務器之間數(shù)據(jù)同步的客戶端的各單元,下面將對子單元進行詳細 的描述,請參閱圖4,本發(fā)明實施例中提供的一種用于服務器之間數(shù)據(jù)同步的客戶端的另一 個實施例包括:
[0092]第三獲取單元401,用于獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令;
[0093]發(fā)送單元402,用于將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送 至第一服務器進行應用服務數(shù)據(jù)更新處理。
[0094]發(fā)送單元402具體包括:
[0095]消息格式處理子單元4021,用于將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更 新請求進行安全消息格式處理,安全消息格式包括待傳輸消息數(shù)據(jù)及對應的數(shù)據(jù)簽名; [0096]發(fā)送子單元4022,用于將進行安全消息格式處理后的應用服務數(shù)據(jù)更新請求通過 protobuf協(xié)議發(fā)送至第一服務器進行應用服務數(shù)據(jù)更新處理。
[0097]第一獲取單元403,用于獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù) 據(jù)更新響應包;
[0098]轉(zhuǎn)發(fā)單元404,用于將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù) 更新同步處理;
[0099]第二獲取單元405,用于獲取到第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步 響應包,第二獲取單元405,具體用于當預置時間段未獲取到第二服務器同步處理數(shù)據(jù)更新 后返回的數(shù)據(jù)同步響應包時,則再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進 行數(shù)據(jù)更新同步處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍。
[0100]本實施例中,通過客戶端的第一獲取單元403獲取到第一服務器根據(jù)應用服務數(shù) 據(jù)更新請求返回的數(shù)據(jù)更新響應包,轉(zhuǎn)發(fā)單元404再將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù) 的第二服務器進行數(shù)據(jù)更新同步處理,最后第二獲取單元405獲取到第二服務器同步處理 數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包,實現(xiàn)了多個服務器之間的數(shù)據(jù)同步,解決了目前服務 器將數(shù)據(jù)更新信息排在消息隊列中基于先入先出進行數(shù)據(jù)傳輸同步,由于同步具有一定延 時,導致的不同服務器之間的通過不狀態(tài)出現(xiàn)不一致,用戶體驗差的技術問題。
[0101] 進一步地,第二獲取單元405當預置時間段未獲取到第二服務器同步處理數(shù)據(jù)更 新后返回的數(shù)據(jù)同步響應包時,則再次將數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器 進行數(shù)據(jù)更新同步處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍,大大地降 低了服務的負載,有效地避免了服務器防止服務器由于過載無法工作的技術問題。
[0102] 進一步地,將應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息 格式處理的技術方案,防止了數(shù)據(jù)在傳輸過程中被惡意篡改。
[0103] 請參閱圖5,本發(fā)明實施例中提供的一種基于客戶端的服務器之間數(shù)據(jù)同步系統(tǒng) 的一個實施例包括:
[0104] 若干個服務器51,以及圖3和圖4實施例的用于服務器之間數(shù)據(jù)同步的客戶端52;
[0105] 若干個服務器51與用于服務器之間數(shù)據(jù)同步的客戶端52建立有通信連接關系。
[0106] 需要說明的是,前述的服務器51可以是圖1、圖2實施例中的第一服務器、第二服務 器的統(tǒng)稱,也就是服務器51之間通過用于服務器之間數(shù)據(jù)同步的客戶端52進行數(shù)據(jù)同步。
[0107] 所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng), 裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0108] 在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件 可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機械或其它的形式。
[0109] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目 的。
[0110] 另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單 元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。 Com]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用 時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上 或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機 設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全 部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程 序代碼的介質(zhì)。
[0112]以上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前 述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前 述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些 修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。
【主權(quán)項】
1. 一種基于客戶端的服務器之間數(shù)據(jù)同步方法,其特征在于,包括: 獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包; 將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處理; 獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包。2. 根據(jù)權(quán)利要求1所述的基于客戶端的服務器之間數(shù)據(jù)同步方法,其特征在于,獲取到 第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響應包之前還包括: 獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令; 將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至所述第一服務器 進行應用服務數(shù)據(jù)更新處理。3. 根據(jù)權(quán)利要求2所述的基于客戶端的服務器之間數(shù)據(jù)同步方法,其特征在于,將所述 應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至所述第一服務器進行應用服 務數(shù)據(jù)更新處理具體包括: 將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求進行安全消息格式處理; 將進行所述安全消息格式處理后的所述應用服務數(shù)據(jù)更新請求通過protobuf協(xié)議發(fā) 送至所述第一服務器進行應用服務數(shù)據(jù)更新處理。4. 根據(jù)權(quán)利要求1至3中任意一項所述的基于客戶端的服務器之間數(shù)據(jù)同步方法,其特 征在于,獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包具體包括: 當預置時間段未獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應包 時,則再次將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新同步處 理,并將重試間隔時間設置為前一次重試間隔時間的雙倍。5. 根據(jù)權(quán)利要求3所述的基于客戶端的服務器之間數(shù)據(jù)同步方法,其特征在于,所述安 全消息格式包括待傳輸消息數(shù)據(jù)及對應的數(shù)據(jù)簽名。6. -種用于服務器之間數(shù)據(jù)同步的客戶端,其特征在于,包括: 第一獲取單元,用于獲取到第一服務器根據(jù)應用服務數(shù)據(jù)更新請求返回的數(shù)據(jù)更新響 應包; 轉(zhuǎn)發(fā)單元,用于將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器進行數(shù)據(jù)更新 同步處理; 第二獲取單元,用于獲取到所述第二服務器同步處理數(shù)據(jù)更新后返回的數(shù)據(jù)同步響應 包。7. 根據(jù)權(quán)利要求6所述的用于服務器之間數(shù)據(jù)同步的客戶端,其特征在于,客戶端還包 括: 第三獲取單元,用于獲取到用戶觸發(fā)的應用服務數(shù)據(jù)更新指令; 發(fā)送單元,用于將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請求發(fā)送至所 述第一服務器進行應用服務數(shù)據(jù)更新處理。8. 根據(jù)權(quán)利要求7所述的用于服務器之間數(shù)據(jù)同步的客戶端,其特征在于,發(fā)送單元具 體包括: 消息格式處理子單元,用于將所述應用服務數(shù)據(jù)更新指令對應的應用服務數(shù)據(jù)更新請 求進行安全消息格式處理,所述安全消息格式包括待傳輸消息數(shù)據(jù)及對應的數(shù)據(jù)簽名; 發(fā)送子單元,用于將進行所述安全消息格式處理后的所述應用服務數(shù)據(jù)更新請求通過 protobuf?協(xié)議發(fā)送至所述第一服務器進行應用服務數(shù)據(jù)更新處理。9. 根據(jù)權(quán)利要求6至8中任意一項所述的用于服務器之間數(shù)據(jù)同步的客戶端,其特征在 于,第二獲取單元,具體用于當預置時間段未獲取到所述第二服務器同步處理數(shù)據(jù)更新后 返回的數(shù)據(jù)同步響應包時,則再次將所述數(shù)據(jù)更新響應包轉(zhuǎn)發(fā)至待同步數(shù)據(jù)的第二服務器 進行數(shù)據(jù)更新同步處理,并將重試間隔時間設置為前一次重試間隔時間的雙倍。10. -種基于客戶端的服務器之間數(shù)據(jù)同步系統(tǒng),其特征在于,包括: 若干個服務器,以及如權(quán)利要求6至9中任意一項所述的用于服務器之間數(shù)據(jù)同步的客 戶端; 若干個所述服務器與用于服務器之間數(shù)據(jù)同步的客戶端建立有通信連接關系。
【文檔編號】H04L29/08GK105933352SQ201610521896
【公開日】2016年9月7日
【申請日】2016年7月5日
【發(fā)明人】劉滔, 羅少奇, 張聰
【申請人】廣州華多網(wǎng)絡科技有限公司