本發(fā)明涉及數(shù)據(jù)收集共享和恢復(fù),尤其涉及一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的方法。
背景技術(shù):
1、開發(fā)人員在游戲測試中玩游戲以尋找bug的過程通常被稱為"游戲測試"或"游戲質(zhì)量保證測試"(game?quality?assurance?testing,簡稱qa?testing)。這個過程是軟件開發(fā)生命周期中的一個重要環(huán)節(jié),目的是確保游戲在發(fā)布前沒有重大缺陷,提供流暢和愉悅的用戶體驗。游戲測試步驟可能包括但不限于:功能測試:檢查游戲的所有功能是否按預(yù)期工作。性能測試:確保游戲在不同硬件上運行流暢,沒有性能瓶頸。兼容性測試:測試游戲在不同操作系統(tǒng)、設(shè)備或瀏覽器上的兼容性。用戶界面測試:評估游戲的用戶界面是否直觀易用?;貧w測試:在每次更新或修復(fù)后進行測試,確保新的更改沒有引入新的問題。壓力測試:測試游戲在高負(fù)載或極端條件下的表現(xiàn)。安全性測試:確保游戲沒有安全漏洞,保護玩家數(shù)據(jù)安全。本地化測試:如果游戲支持多語言,確保所有語言版本的翻譯準(zhǔn)確性和文化適應(yīng)性。游戲測試是一個反復(fù)的過程,可能需要多次迭代,直到游戲達到發(fā)布標(biāo)準(zhǔn)。基于此往往采用階段性游戲存儲游戲數(shù)據(jù),以便后續(xù)修復(fù)bug后快速切換到所需測試的游戲階段。但現(xiàn)有的方法存在一定的局限性,具體包括:
2、1、人力賬號操作的效率受限:當(dāng)開發(fā)人員需要快速推進到游戲的某個階段或轉(zhuǎn)變到特定狀態(tài)時,手動賬號操作會消耗大量時間,引發(fā)效率低下的問題。
3、2、備份團隊內(nèi)其他成員的賬號數(shù)據(jù)頻繁且繁瑣:當(dāng)開發(fā)人員想要運用其他團隊成員的賬號數(shù)據(jù)時,必須執(zhí)行以下步驟:備份對方數(shù)據(jù)庫、將數(shù)據(jù)庫備份拷貝至本地、導(dǎo)入數(shù)據(jù)庫、重啟游戲服務(wù)器進程。所有這些步驟都相當(dāng)耗費時間,繁瑣程度較高,對效率的影響顯著。
4、3、游戲gm的開發(fā)消耗太大:如果開發(fā)人員決定通過編程實現(xiàn)gm菜單以迅速達到特定階段,那么他們將需要針對不同的業(yè)務(wù)模塊編寫數(shù)據(jù)轉(zhuǎn)換代碼。對于需求迭代快且業(yè)務(wù)模塊多的游戲來說,這種方式會暴露出較高的代碼維護成本,因為它要求持續(xù)維護gm代碼。
5、4、不同的局域網(wǎng)網(wǎng)絡(luò)隔離共享不方便:由于游戲服務(wù)器會搭建在不同環(huán)境下的內(nèi)網(wǎng)環(huán)境,由于安全性的考量沒有做數(shù)據(jù)互通,這樣對于賬號數(shù)據(jù)共享就不夠方便,雖然可備份數(shù)據(jù)庫,但是備份數(shù)據(jù)庫的方式并不高效,且數(shù)據(jù)庫大小也不可控。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提出一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的方法,能夠解決至少一個背景技術(shù)中提及的技術(shù)問題。
2、根據(jù)本發(fā)明的一個方面,提供一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的方法,所述方法包括:
3、部署一zookeeper中心注冊服務(wù)器,團隊成員的游戲服務(wù)端進程啟動時向zookeeper服務(wù)器注冊節(jié)點ip和端口,同時訂閱了節(jié)點ip變更事件,動態(tài)監(jiān)測團隊中在線的機器節(jié)點;
4、運行在團隊成員各自開發(fā)環(huán)境下的游戲服務(wù)端進程,在滿足預(yù)設(shè)條件時,游戲服務(wù)器進程將階段性賬號數(shù)據(jù)自動保存至本地數(shù)據(jù)庫;
5、團隊成員從各自開發(fā)環(huán)境下通過節(jié)點ip和端口訪問其他團隊成員本地數(shù)據(jù)庫中的賬號數(shù)據(jù),并查詢和下載其他團隊成員的賬號數(shù)據(jù)到本地數(shù)據(jù)庫。
6、在上述技術(shù)方案中,該方法基于局域網(wǎng)各機器節(jié)點運用分布式集群架構(gòu)理念,游戲服務(wù)端支持本地賬號數(shù)據(jù)收集、共享、恢復(fù)、序列化、導(dǎo)入導(dǎo)出等功能,不僅可應(yīng)用于局域網(wǎng),也可應(yīng)用于跨網(wǎng)絡(luò)和離線環(huán)境中,為游戲開發(fā)團隊提供了極其便利的賬號數(shù)據(jù)操作服務(wù),提高了程序開發(fā)和測試過程中賬號數(shù)據(jù)使用的便利性和效率。該局域網(wǎng)內(nèi)的服務(wù)器采用微服務(wù)架構(gòu)理念,部署了zookeeper作為中心注冊服務(wù)器,使各機器節(jié)點向zookeeper注冊其ip地址和端口號,同時訂閱節(jié)點的變化事件。。這一設(shè)置讓節(jié)點間能互相發(fā)現(xiàn)并訪問,構(gòu)建起一個高效的分布式集群,實現(xiàn)了數(shù)據(jù)的無縫共享。集群的設(shè)計注重高可用性、可擴展性,并具備負(fù)載均衡能力,確保了數(shù)據(jù)共享平臺的穩(wěn)定性和可靠性。進一步地,引入zookeeper最實用的好處是“服務(wù)發(fā)現(xiàn)能力”提升了。有了zookeeper中心注冊服務(wù)器,游戲服務(wù)端進程在啟動時會注冊節(jié)點ip信息,關(guān)閉進程或離線時,zookeeper也能夠感知到節(jié)點退出而注銷節(jié)點,從而維護了一個有效的在線節(jié)點列表。團隊成員在達到某種特定規(guī)則(如主線任務(wù)變動)時,游戲服務(wù)器進程會自動克隆并收集相關(guān)賬號數(shù)據(jù)。運用分布式集群架構(gòu)理念,局域網(wǎng)內(nèi)機器通過服務(wù)發(fā)現(xiàn)機制達到互相發(fā)現(xiàn)、互相訪問和數(shù)據(jù)共享的目的,這些數(shù)據(jù)將作為后續(xù)在團隊協(xié)作中共享使用的資料源。
7、在一些實施例中,運行在團隊成員各自開發(fā)環(huán)境下的游戲服務(wù)端進程,在滿足預(yù)設(shè)條件時,游戲服務(wù)器進程將階段性賬號數(shù)據(jù)自動保存至本地數(shù)據(jù)庫,具體地:
8、團隊成員在游戲內(nèi)的角色完成當(dāng)前主線任務(wù)時,通過事件框架對外拋出一個“主線任務(wù)變化”事件;
9、當(dāng)收到“主線任務(wù)變化”事件后,具體執(zhí)行步驟如下:
10、游戲進程服務(wù)器自動克隆一份該賬號數(shù)據(jù)進行存儲;以“_章節(jié)id_主線任務(wù)索引”格式對賬號名稱進行命名,并且在角色數(shù)據(jù)中記錄當(dāng)前時間戳;
11、若該賬號數(shù)據(jù)已經(jīng)存在于本地數(shù)據(jù)庫中,則用最新的賬號數(shù)據(jù)進行覆蓋。
12、在上述技術(shù)方案中,對團隊成員而言,他們可以在游戲的主線任務(wù)事件發(fā)生變化時自動收集賬號數(shù)據(jù),且無需用戶人為介入。具體地:團隊成員在達到某種特定規(guī)則(如主線任務(wù)變動)時,游戲服務(wù)器進程會自動克隆并收集相關(guān)賬號數(shù)據(jù)。運用分布式集群架構(gòu)理念,局域網(wǎng)內(nèi)機器通過服務(wù)發(fā)現(xiàn)機制達到互相發(fā)現(xiàn)、互相訪問和數(shù)據(jù)共享的目的,這些數(shù)據(jù)將作為后續(xù)在團隊協(xié)作中共享使用的資料源。
13、在一些實施例中,團隊成員從在各自開發(fā)環(huán)境下通過節(jié)點ip和端口訪問其他團隊成員本地數(shù)據(jù)庫中的賬號數(shù)據(jù),具體地:
14、基于zookeeper中心注冊服務(wù)器提供的ip和端口信息,以此查詢局域網(wǎng)所有共享賬號的基礎(chǔ)信息,包含各機器環(huán)境下svn代碼倉庫的分支名稱、主線任務(wù)的關(guān)鍵信息描述。
15、在上述技術(shù)方案中,團隊成員能夠便利地預(yù)覽和檢索賬號數(shù)據(jù),借助主線任務(wù)關(guān)鍵信息描述等,他們能夠快速篩選出需要的賬號數(shù)據(jù)。
16、在一些實施例中,團隊成員從各自開發(fā)環(huán)境下通過節(jié)點ip和端口訪問其他團隊成員本地數(shù)據(jù)庫中的賬號數(shù)據(jù),并查詢和下載其他團隊成員的賬號數(shù)據(jù)到本地數(shù)據(jù)庫,具體地:
17、基于節(jié)點ip和共享的賬號角色id,通過http協(xié)議訪問其他團隊成員的本地數(shù)據(jù)庫,把賬號二進制數(shù)據(jù)下載到本地,并導(dǎo)入本地數(shù)據(jù)庫。
18、在上述技術(shù)方案中,基于節(jié)點ip和共享的賬號角色id以及http協(xié)議通過簡單點擊下載即可獲得賬號數(shù)據(jù),大幅節(jié)省了時間,改進了效率,也增強了便利性。
19、在一些實施例中,導(dǎo)入本地數(shù)據(jù)庫后,還包括:
20、本地生成最新的唯一角色id,將下載的賬號數(shù)據(jù)中的角色id和賬號名稱字段替換為生成的唯一角色id;
21、若生成的賬號名稱已經(jīng)存在于本地,則重新建立賬號名稱與角色id的映射關(guān)系,且刪除舊角色數(shù)據(jù)。
22、在上述技術(shù)方案中,實現(xiàn)了覆蓋下載賬號數(shù)據(jù),并且為了方便考慮,將賬號名稱與角色id一致。
23、在一些實施例中,導(dǎo)入本地數(shù)據(jù)庫后,還包括:
24、通過http協(xié)議訪問本地數(shù)據(jù)庫,把賬號二進制數(shù)據(jù)克隆到本地數(shù)據(jù)庫,生成一份新的角色數(shù)據(jù)。
25、在上述技術(shù)方案中,實現(xiàn)克隆賬號數(shù)據(jù),通過http協(xié)議訪問本地服務(wù)端,把賬號二進制數(shù)據(jù)克隆到本地,并導(dǎo)入本地數(shù)據(jù)庫,生成一份新的角色數(shù)據(jù)。
26、在一些實施例中,導(dǎo)入本地數(shù)據(jù)庫后,還包括:
27、使用protobuf協(xié)議對數(shù)據(jù)庫數(shù)據(jù)進行序列化成二進制格式。
28、在上述技術(shù)方案中,通過protobuf協(xié)議實現(xiàn)導(dǎo)入導(dǎo)出離線賬號數(shù)據(jù),使用protobuf協(xié)議對數(shù)據(jù)庫數(shù)據(jù)進行序列化成二進制格式,可將本地賬號數(shù)據(jù)導(dǎo)出為二進制文件,也可將外部二進制文件導(dǎo)入到本地數(shù)據(jù)庫,方便跨網(wǎng)絡(luò)或離線環(huán)境下的使用。
29、根據(jù)本發(fā)明的另一個方面,提供一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的裝置,基于上述的方法;包括依序連接的:
30、zookeeper模塊,用于部署一zookeeper中心注冊服務(wù)器,團隊成員的游戲服務(wù)端進程啟動時向zookeeper服務(wù)器注冊節(jié)點ip和端口,同時訂閱了節(jié)點ip變更事件,動態(tài)監(jiān)測團隊中在線的機器節(jié)點;
31、若干本地服務(wù)器模塊,用于運行在團隊成員各自開發(fā)環(huán)境下的游戲服務(wù)端進程,在滿足預(yù)設(shè)條件時,游戲服務(wù)器進程將階段性賬號數(shù)據(jù)自動保存至本地數(shù)據(jù)庫;以及,用于團隊成員從各自開發(fā)環(huán)境下通過節(jié)點ip和端口訪問其他團隊成員本地數(shù)據(jù)庫中的賬號數(shù)據(jù),并查詢和下載其他團隊成員的賬號數(shù)據(jù)到本地數(shù)據(jù)庫。
32、在上述技術(shù)方案中,為了更好的使用上述方法,本技術(shù)提出一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的裝置,各個模塊對應(yīng)上述方法的各個步驟,其具體的原理已在上文中描述,此處不再贅述。
33、根據(jù)本發(fā)明的又一個方面,提供一種分布式集群下的游戲賬號數(shù)據(jù)收集共享和恢復(fù)的設(shè)備,包括:
34、至少一個處理器以及與所述至少一個處理器通信連接的存儲器;
35、其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行上述的方法。
36、在上述技術(shù)方案中,為了更好的運行和處理該方法,將上述方法存儲至存儲器,并利用處理器來執(zhí)行存儲的方法。需要注意的是,每個步驟的原理和效果已在上文描述,此處不再展開說明。
37、根據(jù)本發(fā)明的再一個方面,提供一種計算機可讀存儲介質(zhì),存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述的方法。
38、在上述技術(shù)方案中,為了更好的運行和使用該方法,將上述方法存儲至計算機可讀存儲介質(zhì),并利用處理器來實現(xiàn)上述方法。需要注意的是,每個步驟的原理和效果已在上文描述,此處不再展開說明。