在結(jié)束忙碌工作回家的地鐵上,難得閑暇的周末下午,和朋友再來(lái)一局的入睡前......游戲已經(jīng)成為了當(dāng)下大多數(shù)年輕人在緊張的工作之余最普遍的放松方式和社交手段之一。
而游戲廠商想要增加用戶粘性,不僅需要在游戲類別、情節(jié)故事、關(guān)卡設(shè)計(jì)上洞察用戶喜好,讓游戲足夠新穎,更要在流暢程度上帶給用戶更極致的體驗(yàn)。游戲場(chǎng)景復(fù)雜多樣,應(yīng)用版本更新迭代,企業(yè)的運(yùn)營(yíng)成本也水漲船高,這讓各大廠商在游戲開發(fā)過(guò)程中都極度重視一個(gè)同樣的問(wèn)題——如何選擇一款可靠的數(shù)據(jù)庫(kù)來(lái)支撐龐大的系統(tǒng)穩(wěn)定運(yùn)行???
每一款游戲都要經(jīng)歷開發(fā)、上線、運(yùn)維等多個(gè)環(huán)節(jié),在這過(guò)程中,數(shù)據(jù)庫(kù)面臨的應(yīng)用場(chǎng)景非常豐富。不同的應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)庫(kù)的要求也不盡相同,比如跨服對(duì)戰(zhàn)對(duì)計(jì)算算力的要求,在線聊天產(chǎn)生的數(shù)據(jù)對(duì)存儲(chǔ)空間的要求,排行榜實(shí)時(shí)刷新對(duì)數(shù)據(jù)可用性的要求......這些具體的游戲場(chǎng)景都要求數(shù)據(jù)庫(kù)在存儲(chǔ)空間、彈性擴(kuò)容、數(shù)據(jù)強(qiáng)一致保障以及成本等各方面都交出滿意的答卷。
??在《迷你世界》、《余燼風(fēng)暴》等大型游戲的開發(fā)和上線過(guò)程中,這些廠商都不約而同地將 GaussDBforRedis 數(shù)據(jù)庫(kù)作為首選。為什么 GaussDBforRedis 成為了游戲行業(yè)的心頭愛(ài)呢?我們不妨先看看在游戲行業(yè),他們都面臨著哪些共同的痛點(diǎn),GaussDBforRedis 有什么錦囊妙計(jì)。
?強(qiáng)擴(kuò)展—支持業(yè)務(wù)高峰期海量玩家在線對(duì)戰(zhàn)暢聊?
?在一款游戲新開服、活動(dòng)推廣、重大版本上線或發(fā)放點(diǎn)券游戲幣等時(shí)間段,玩家訪問(wèn)量突增,同時(shí)在線人數(shù)迅速飚高,這種情況下,往往需要提前增加節(jié)點(diǎn)擴(kuò)算力,高峰期后再縮減節(jié)點(diǎn),如果處理不好,極有可能在擴(kuò)容時(shí)發(fā)生長(zhǎng)時(shí)間業(yè)務(wù)阻塞,甚至出現(xiàn)游戲服務(wù)器故障而被迫停服,面臨痛失大量游戲玩家的風(fēng)險(xiǎn)。
??比如《迷你世界》春節(jié)期間在線玩家數(shù)從平時(shí)的百萬(wàn)級(jí)別突增到千萬(wàn)級(jí),玩家協(xié)同創(chuàng)作與聯(lián)機(jī)游玩產(chǎn)生大量實(shí)時(shí)聊天數(shù)據(jù),需要存儲(chǔ)空間在線快速擴(kuò)容。而之前使用的開源 Redis 基于存算一體架構(gòu),存儲(chǔ)擴(kuò)容需要十幾分鐘,擴(kuò)容期間大量玩家在協(xié)同創(chuàng)作、實(shí)時(shí)聊天時(shí)出現(xiàn)語(yǔ)音消息發(fā)不出、圖片傳輸失敗等問(wèn)題,持續(xù)時(shí)間長(zhǎng)達(dá)十幾分鐘,極大影響了玩家的游戲體驗(yàn),極易造成用戶流失。
??龍圖游戲的大型魔幻手游《余燼風(fēng)暴》采用的是多人跨服對(duì)戰(zhàn)的游戲模式,在大量玩家跨服戰(zhàn)斗的業(yè)務(wù)高峰期,數(shù)據(jù)庫(kù)不僅需要穩(wěn)定支撐 10 萬(wàn)級(jí)高并發(fā)業(yè)務(wù),還對(duì)算力有一定的要求,需要計(jì)算節(jié)點(diǎn)達(dá)到秒級(jí)擴(kuò)容,才能輕松應(yīng)對(duì)海量用戶跨服對(duì)戰(zhàn)的流量洪峰。
??針對(duì)這些場(chǎng)景,GaussDBforRedis 基于業(yè)界首創(chuàng)的存算分離架構(gòu),做到了存儲(chǔ)空間的彈性伸縮和秒級(jí)擴(kuò)容,擴(kuò)容只需修改配額,最高可支持單實(shí)例 TB 級(jí)數(shù)據(jù) 1 秒擴(kuò)容 8 倍,即從 1TB 擴(kuò)容到 8TB,能滿足所有海量游戲聊天數(shù)據(jù)的在線擴(kuò)容場(chǎng)景,助力千萬(wàn)級(jí)玩家暢聊不卡頓,極大提升玩家交流體驗(yàn)。計(jì)算節(jié)點(diǎn)做到分鐘級(jí)擴(kuò)容,擴(kuò)容僅需修改數(shù)據(jù)映射,無(wú)需搬遷數(shù)據(jù),在業(yè)務(wù)上僅有秒級(jí)的時(shí)延抖動(dòng),支撐《余燼風(fēng)暴》業(yè)務(wù)高峰期單日同時(shí)在線玩家數(shù)達(dá)到百萬(wàn)級(jí),且玩家數(shù)據(jù)訪問(wèn)幾乎不受影響。
?強(qiáng)一致—保障多個(gè)地圖數(shù)據(jù)實(shí)時(shí)一致性
???沙盒游戲是近幾年的熱門游戲題材之一,這類游戲常見的玩法有兩種,一種是普通玩家可以進(jìn)入多個(gè)地圖聯(lián)機(jī)游玩,通過(guò)“方塊”的自由組合,搭建各種場(chǎng)景地圖;另一種是高階玩家與各地玩家聯(lián)機(jī),跨區(qū)域協(xié)同創(chuàng)作地圖,形成全新的小游戲。
??相信不少玩家都遇到過(guò)這樣的問(wèn)題:在游戲地圖 A 購(gòu)買完道具,立即切換到別的地圖以后,打開背包發(fā)現(xiàn)道具竟丟失了;遇到美女玩家,關(guān)注對(duì)方后本應(yīng)自動(dòng)發(fā)送招呼語(yǔ),對(duì)方卻遲遲沒(méi)有收到。
??其實(shí)主要原因是兩個(gè)地圖從不同的節(jié)點(diǎn)讀取數(shù)據(jù),由于主節(jié)點(diǎn)的數(shù)據(jù)沒(méi)有及時(shí)同步至從節(jié)點(diǎn),更新存在一定的延遲性,最終導(dǎo)致多個(gè)地圖之間的數(shù)據(jù)不一致。這說(shuō)明一個(gè)問(wèn)題,無(wú)論什么條件下,游戲地圖數(shù)據(jù)必須要實(shí)時(shí)保持一致,這樣才能為玩家?guī)?lái)良好的用戶體驗(yàn)。
??面對(duì)這種數(shù)據(jù)不一致的問(wèn)題,GaussDBforRedis 是怎么做的呢?首先不需要主從分離,在存儲(chǔ)用戶數(shù)據(jù)時(shí),存儲(chǔ)層使用 3 副本保存地圖數(shù)據(jù),基于一致性共識(shí)算法率先保證所有副本數(shù)據(jù)的一致性,避免了原有主從結(jié)構(gòu)數(shù)據(jù)庫(kù)在主數(shù)據(jù)庫(kù)宕機(jī)后,從數(shù)據(jù)庫(kù)中的地圖數(shù)據(jù)跟主數(shù)據(jù)庫(kù)中不完全一致的問(wèn)題。玩家不論是在多個(gè)地圖之間游玩,還是聯(lián)機(jī)協(xié)同創(chuàng)作地圖,都能實(shí)時(shí)保障數(shù)據(jù)的一致性,在游戲的體驗(yàn)感上得到極大的提升。
數(shù)據(jù)高可用—支持游戲排行榜數(shù)據(jù)實(shí)時(shí)刷新
??在一款游戲熱度逐漸高漲或新游戲上線時(shí),玩家往往對(duì)游戲排行榜的參與感會(huì)非常強(qiáng)烈,排行榜的刷新對(duì)數(shù)據(jù)實(shí)時(shí)性的要求更強(qiáng)。因?yàn)榕判邪竦淖兓瑪?shù)據(jù)變動(dòng)非常頻繁,需要高可用的數(shù)據(jù)庫(kù)保證積分?jǐn)?shù)據(jù)的穩(wěn)定讀取和實(shí)時(shí)刷新。
??為了保證數(shù)據(jù)穩(wěn)定讀取,解決數(shù)據(jù)庫(kù)高可用問(wèn)題,基于存算分離架構(gòu)的 GaussDBforRedis 將玩家積分?jǐn)?shù)據(jù)統(tǒng)一存儲(chǔ)在存儲(chǔ)池中,而不是存儲(chǔ)在計(jì)算節(jié)點(diǎn)中,這樣做的好處是,如果某一個(gè)計(jì)算節(jié)點(diǎn)發(fā)生故障后,業(yè)務(wù)將自動(dòng)將該節(jié)點(diǎn)的業(yè)務(wù)切換到其它計(jì)算節(jié)點(diǎn),如下圖所示:
??只要集群中的任一節(jié)點(diǎn)存活,就可訪問(wèn)全量數(shù)據(jù)(友商采用的存算一體主從架構(gòu),單節(jié)點(diǎn)掛掉后,上面存儲(chǔ)的積分?jǐn)?shù)據(jù)將無(wú)法讀?。苊饬艘?yàn)楣?jié)點(diǎn)故障導(dǎo)致排行榜無(wú)法實(shí)時(shí)刷新的情況。
高安全—跨地域雙活完整災(zāi)備輕松應(yīng)對(duì)游戲故障
??游戲場(chǎng)景是典型的互聯(lián)網(wǎng)場(chǎng)景,用戶的數(shù)據(jù)日志非常之多,一旦發(fā)生數(shù)據(jù)庫(kù)宕機(jī)、機(jī)房斷電、網(wǎng)絡(luò)故障等情況造成數(shù)據(jù)丟失,玩家的游戲體驗(yàn)將大打折扣。當(dāng)一個(gè)可用區(qū)或整個(gè)地域意外宕機(jī),需要有其它的可用區(qū)和補(bǔ)救措施來(lái)及時(shí)修復(fù)數(shù)據(jù),這對(duì)系統(tǒng)的安全保障能力和容災(zāi)能力都提出很高的要求。??GaussDBforRedis 支持跨地域雙活容災(zāi),即在兩個(gè)實(shí)例之間建立數(shù)據(jù)同步鏈路,其中主實(shí)例支持讀寫,備實(shí)例只讀。如下圖所示:
??與開源 Redis 那種簡(jiǎn)單的命令轉(zhuǎn)發(fā)不同,GaussDBforRedis 的雙活方案是基于 WAL 日志的數(shù)據(jù)同步,原理上更類似于 MySQL 數(shù)據(jù)庫(kù)。在雙活架構(gòu)中,RsyncServer 進(jìn)程負(fù)責(zé)數(shù)據(jù)的全量和增量同步,數(shù)據(jù)同步鏈路采用華為云內(nèi)部高速網(wǎng)絡(luò),同 Region 內(nèi)僅毫秒級(jí)延遲。
??GaussDB 已經(jīng)在游戲行業(yè)沉淀出了非常豐富、成功的經(jīng)驗(yàn)。在《迷你世界》國(guó)產(chǎn)沙盒創(chuàng)意平臺(tái)中,GaussDBforRedis 支撐了多區(qū)域 TB 級(jí)別的地圖數(shù)據(jù)同步更新,助力億級(jí)用戶跨區(qū)域協(xié)同創(chuàng)作,在整體成本相比開源 Redis 降低 60%的同時(shí),存儲(chǔ)用戶畫像總量提升了 3 倍,保障了千萬(wàn)級(jí)玩家實(shí)時(shí)聊天數(shù)據(jù)毫秒級(jí)別訪問(wèn)。龍圖游戲選擇了 GaussDBforRedis 作為大型魔幻手游《余燼風(fēng)暴》的核心底座,不僅開服首日流水就破千萬(wàn),且在業(yè)務(wù)高峰期單日同時(shí)在線玩家數(shù)達(dá)到百萬(wàn)級(jí),收獲了眾多玩家的喜愛(ài)。
??游戲場(chǎng)景只是互聯(lián)網(wǎng)行業(yè)中的其中一種通用型場(chǎng)景,這些核心技術(shù)和實(shí)踐經(jīng)驗(yàn)也只是 GaussDB 數(shù)據(jù)庫(kù)多年來(lái)發(fā)展成果的冰山一角。GaussDB 在技術(shù)上的創(chuàng)新和突破從未止步,在千行百業(yè)中的探索也一直在路上。
審核編輯:湯梓紅
-
云計(jì)算
+關(guān)注
關(guān)注
39文章
7976瀏覽量
139992 -
游戲
+關(guān)注
關(guān)注
2文章
773瀏覽量
26849 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3925瀏覽量
66179
發(fā)布評(píng)論請(qǐng)先 登錄
中微愛(ài)芯家電行業(yè)一站式芯片解決方案

2025 UL Solutions電源行業(yè)盛會(huì):維愛(ài)普在繁復(fù)標(biāo)準(zhǔn)枷鎖與特殊領(lǐng)域合規(guī)桎梏下的破繭探微
愛(ài)芯元智與STRADVISION簽署戰(zhàn)略合作協(xié)議
中微愛(ài)芯榮獲2024年度電子元器件行業(yè)優(yōu)秀MCU芯片國(guó)產(chǎn)品牌企業(yè)
尼賽拉NHE520F助力顯卡散熱風(fēng)扇
華為云 GaussDB 助力國(guó)家統(tǒng)計(jì)局, 開啟統(tǒng)計(jì)現(xiàn)代化改革新篇章
華為云GaussDB助力統(tǒng)計(jì)現(xiàn)代化改革
行業(yè)首個(gè)芯片級(jí)游戲技術(shù),OPPO「風(fēng)馳游戲內(nèi)核」正式亮相一加游戲大會(huì)

OPPO發(fā)布“風(fēng)馳游戲內(nèi)核”,優(yōu)化游戲體驗(yàn)
愛(ài)芯元速AI芯助力智駕智艙產(chǎn)品快速量產(chǎn)
愛(ài)芯元智精彩亮相IC China 2024
萬(wàn)兆光網(wǎng):國(guó)產(chǎn)游戲黑神話悟空背后的網(wǎng)絡(luò)新引擎
藍(lán)牙模塊如何提升游戲設(shè)備的體驗(yàn)?

評(píng)論