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