從新手游上線看游戲數(shù)據(jù)庫選型
最近我們深入游戲場景,參與支撐一個全新的手游項(xiàng)目上線,交流中發(fā)現(xiàn)經(jīng)驗(yàn)豐富的游戲架構(gòu)師都比較認(rèn)可一個觀點(diǎn):游戲業(yè)務(wù)設(shè)計(jì)離不開一款靠譜的KV數(shù)據(jù)庫。
這款游戲項(xiàng)目定位是爆款精品,有長期運(yùn)營規(guī)劃,因此在前期開發(fā)階段就鎖定了合適的“主數(shù)據(jù)庫”選型——華為云KV數(shù)據(jù)庫GaussDB(for Redis)。
回顧這次項(xiàng)目,我們總結(jié)了游戲業(yè)務(wù)對數(shù)據(jù)庫的部分關(guān)鍵訴求:
1.注重玩家體驗(yàn),對KV數(shù)據(jù)庫穩(wěn)定性要求很高
這款游戲預(yù)計(jì)上半年會達(dá)到日活數(shù)百萬DAU,目前核心的玩家數(shù)據(jù)都使用KV數(shù)據(jù)庫存儲。一旦數(shù)據(jù)庫發(fā)生不可用,很可能大量玩家無法進(jìn)入戰(zhàn)斗房間。
在穩(wěn)定性方面,GaussDB(for Redis)能力領(lǐng)先,在3可用區(qū)架構(gòu)下,可靠性極高。研發(fā)團(tuán)隊(duì)很早以前就已經(jīng)對集群管理做了大量可靠性加固工作,極端場景下,即使集群發(fā)生大半數(shù)節(jié)點(diǎn)故障,客戶的業(yè)務(wù)也可以在數(shù)秒內(nèi)快速恢復(fù),完全不會造成大規(guī)模玩家體驗(yàn)受損。
穩(wěn)定性能力是需要持續(xù)打磨的,華為云研發(fā)團(tuán)隊(duì)還在繼續(xù)對GaussDB(for Redis)集群管理架構(gòu)進(jìn)行優(yōu)化,以實(shí)現(xiàn)極致的快速恢復(fù)。
2.考慮長期運(yùn)營,數(shù)據(jù)存儲成本要可控
其實(shí)業(yè)界有很多游戲公司都會用KV庫存玩家數(shù)據(jù),這里最常用的是自建開源Redis,在GB級的數(shù)據(jù)量下,這個方案沒有不妥,但一旦考慮到長期運(yùn)營,開源Redis純內(nèi)存成本是直線上漲的,例如:16GB成本需要1500,后期擴(kuò)容到32GB需要3000,一年后到了320GB就要30000。在成本痛點(diǎn)訴求下,業(yè)務(wù)方肯定會尋求最合適自己業(yè)務(wù)的存儲選型。
這次的項(xiàng)目里,GaussDB(for Redis)就是最適合游戲業(yè)務(wù)的KV數(shù)據(jù)庫。存儲池成本遠(yuǎn)比純內(nèi)存低,客戶可以放心長期存,這個游戲放在華為云3年、5年、10年,客戶都不必擔(dān)心將來的成本問題,可以放心聚焦到游戲自身的運(yùn)營和質(zhì)量打磨上。
3.資源彈性,活動前后能夠無感擴(kuò)縮容
游戲首發(fā)只是個開頭,長期運(yùn)營中,會給玩家舉辦各類節(jié)日活動。這時候就要求數(shù)據(jù)庫能夠彈性伸縮。GaussDB(for Redis)存算分離架構(gòu)最具特色的就是:秒級擴(kuò)容。使用華為云GaussDB(for Redis)后,游戲客戶完全可以這樣操作:
(1)周五晚上擴(kuò)一波資源,在線擴(kuò)就行,對業(yè)務(wù)影響極??;
(2)周末做活動抗住大數(shù)據(jù)量、大流量,確?;顒禹樌?;
(3)等到周一活動熱度過去,進(jìn)行一把在線縮容即可。
這里面涉及到很多的技術(shù)設(shè)計(jì),比如秒級擴(kuò)容,其基本原理如下:
GaussDB(for Redis)計(jì)算資源、存儲資源都支持獨(dú)立擴(kuò)展:
這次游戲上線很成功,GaussDB(for Redis)強(qiáng)力保障了客戶業(yè)務(wù)穩(wěn)定高效運(yùn)行。今年GaussDB(for Redis)產(chǎn)品和研發(fā)團(tuán)隊(duì)會繼續(xù)加強(qiáng)投入,力爭在穩(wěn)定性、使用體驗(yàn)上有進(jìn)一步的提升,為更多業(yè)務(wù)架構(gòu)帶來更優(yōu)的解決方案。