精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談?wù)勀澳盃幇栽跀?shù)據(jù)庫方面踩過的坑(前篇)

移動(dòng)開發(fā) Android
陌陌爭霸是一個(gè)手游項(xiàng)目,最開始的目標(biāo)很明確,將COC其中最核心的部分剝離出來,很快可以做出一個(gè)簡單的卻不同于以往 MMO 的游戲,然后就可以著手在此基礎(chǔ)上發(fā)展。研發(fā)工程師云風(fēng)將在開發(fā)過程中的數(shù)據(jù)庫方面的一些經(jīng)驗(yàn)和教訓(xùn)分享出來,希望大家喜歡。

[[109475]]

陌陌爭霸 這個(gè)項(xiàng)目一開始不叫這個(gè)名字,它在 2013 年中的時(shí)候,還只是一個(gè)我們公司 用來試水移動(dòng)游戲的試驗(yàn)項(xiàng)目。

最開始的目標(biāo)很明確,COC 是打動(dòng)我的第一款基于移動(dòng)平臺網(wǎng)絡(luò)游戲,讓我看到了和傳統(tǒng) MMO 不同的網(wǎng)絡(luò)游戲設(shè)計(jì)方向。我覺得只需要把其中最核心的部分剝離出來,我們很快可以做出一個(gè)簡單的卻不同于以往 MMO 的游戲,然后就可以著手在此基礎(chǔ)上發(fā)展。

至于后來找到陌陌合作,是個(gè)機(jī)緣巧合的故事。

我們的試驗(yàn)項(xiàng)目完成,卻沒想好怎么推給玩家去玩(而這類游戲沒有一定的玩家群體基本玩不起來),而陌陌 游戲平臺剛上線,僅有的一款產(chǎn)品(類似泡泡龍的游戲)成績不佳。因?yàn)槲覀児竞湍澳暗膭?chuàng)始人都曾經(jīng)在網(wǎng)易工作,非常熟悉。這款游戲也就只花了一個(gè)月時(shí)間就 在陌陌游戲平臺發(fā)布了。

一開始我們只把剛完成狂刃 啟動(dòng)器項(xiàng)目的阿楠調(diào)過來換掉我來做這個(gè)項(xiàng)目,我在做完了初期的圖形引擎工作后,就把游戲的實(shí)現(xiàn)交給了他。我們只打算做客戶端,因?yàn)橹挥羞@部分需要重新積累技術(shù)經(jīng)驗(yàn);而服務(wù)器不會(huì)和傳統(tǒng) MMO 有太大的不同。而我們公司已經(jīng)圍繞 skynet 這套服務(wù)器框架開發(fā)有很長一段時(shí)間了,隨時(shí)都可以快速把這個(gè)手游項(xiàng)目的服務(wù)器快速搭建起來。

到 2013 年夏天,感覺應(yīng)該開始動(dòng)手做服務(wù)器部分了。曉靖在斗羅大陸的端游項(xiàng)目中積累了不少服務(wù)器開發(fā)的經(jīng)驗(yàn),也是除我之外,對 skynet 最為熟悉的人;如果這個(gè)試驗(yàn)項(xiàng)目只配備一個(gè)程序來開發(fā)服務(wù)器的話,沒有更好的人選了。

從那個(gè)時(shí)候起,我們開始考慮服務(wù)器的結(jié)構(gòu),其中也包括了數(shù)據(jù)庫的選型和構(gòu)架。

skynet 有自己的 IO 模型,如果要足夠高效,最好是能用 skynet 提供的 socket 庫自己寫 DB 的 driver 。因?yàn)?redis 的協(xié)議最簡潔,所以最先我只給 skynet 制作了 redis 的 driver 。而我們代理的游戲狂刃的開發(fā)方使用的是 MongoDB ,為了運(yùn)營方便,我們的平臺也使用它做了不少東西,我便制作給 skynet 制作了初步的 mongodb driver 。到服務(wù)器開始開發(fā)時(shí),我們有了兩個(gè)選擇。

十多年的游戲行業(yè)從業(yè)經(jīng)驗(yàn)告訴我,數(shù)據(jù)庫在實(shí)時(shí)交互性較強(qiáng)的在線游戲中,主要起的是一個(gè)數(shù)據(jù)備份容災(zāi)的作用。很少會(huì)將其用于數(shù)據(jù)交換。而在其它領(lǐng)域,很多開發(fā)者則選擇把數(shù)據(jù)庫作為業(yè)務(wù)模塊間的數(shù)據(jù)交換,帶著這個(gè)思路來做游戲,往往會(huì)帶來很嚴(yán)重的性能問題。

簡單說,理論上,由于游戲服務(wù)器往往 7 * 24 小時(shí)持續(xù)工作,且玩家具有強(qiáng)交互性,大部分游戲世界里的數(shù)據(jù)都一直存在于內(nèi)存中。當(dāng)服務(wù)器啟動(dòng)后,一旦數(shù)據(jù)加載完畢,大部分不再需要退出內(nèi)存。服務(wù)器只是 在不斷的創(chuàng)造新數(shù)據(jù)并讓這些數(shù)據(jù)在內(nèi)存中流通而已,它沒有任何需要從外部讀取數(shù)據(jù)。如果內(nèi)存無限大,且服務(wù)器永遠(yuǎn)不會(huì)當(dāng)機(jī),數(shù)據(jù)庫這個(gè)設(shè)施沒有存在的必要。

當(dāng)然這兩個(gè)前提條件都不可能成立。

對于內(nèi)存無限大這個(gè)條件,傳統(tǒng) MMORPG 游戲需要消耗的內(nèi)存是 O(n) 的,n 和總用戶數(shù)相關(guān)。雖然同時(shí)玩游戲的用戶數(shù)(活躍用戶數(shù))有限,很難持續(xù)增長;但總用戶數(shù)的確是隨時(shí)間增長的。我們只要把 n 從總用戶數(shù)變成活躍用戶數(shù)后,基本就能維持內(nèi)存的需求。

最簡單的做法是,當(dāng)一個(gè)用戶不活躍后,就把這部分?jǐn)?shù)據(jù)落地(寫入磁盤),當(dāng)他有一天又變得活躍后,再從磁盤加載回來。在端游早期,用戶活躍的標(biāo)準(zhǔn)就 是他是否在線。我們在用戶上線的時(shí)候加載他的數(shù)據(jù),離線的時(shí)候?qū)?shù)據(jù)落地即可。從開發(fā)角度看,數(shù)據(jù)如何保存,最簡單的方法不是使用數(shù)據(jù)庫,而是以用戶 id 為文件名,把用戶數(shù)據(jù)序列化成文本寫入文件系統(tǒng)即可。這也就是網(wǎng)易早期游戲的通用做法。

對于服務(wù)器穩(wěn)定性的要求,我們不可能作到 100% 不當(dāng)機(jī),所以數(shù)據(jù)還是要定期存盤的。可以是按時(shí)間為周期保存,也可以是在關(guān)鍵操作發(fā)生時(shí)保存。這樣在災(zāi)難發(fā)生的時(shí)候可以恢復(fù)回來。

btw, 一個(gè)系統(tǒng)所需要管理的數(shù)據(jù)總量小于系統(tǒng)總的內(nèi)存量這一點(diǎn),不僅僅在游戲領(lǐng)域,其實(shí)很多別的系統(tǒng)也存在。所以 redis 這種純內(nèi)存數(shù)據(jù)庫才有了廣泛的應(yīng)用空間。redis 的 BGSAVE 以及 BGSAVE 的兩種模式,也對應(yīng)了上面所指的數(shù)據(jù)落地策略。

至于,如何操作這些數(shù)據(jù)的問題,既然數(shù)據(jù)都在你系統(tǒng)的內(nèi)存中,總可以寫出對應(yīng)的算法去處理它們吧?明白了這一點(diǎn),就能明白為什么在大多數(shù)在線游戲系統(tǒng)中,選用怎樣的數(shù)據(jù)庫就不是什么重要的問題了。

當(dāng)然,一個(gè)在線游戲的運(yùn)營還是需要大量的游戲內(nèi)數(shù)據(jù)分析的。本著不同的業(yè)務(wù)邏輯盡量分離的原則,我們還是需要把游戲內(nèi)的數(shù)據(jù)輸出出來,交給專業(yè)的系統(tǒng),專業(yè)的人來處理。這一部分的數(shù)據(jù)量遠(yuǎn)大于游戲系統(tǒng)為玩家服務(wù)時(shí)所需要的量。我認(rèn)為它的空間復(fù)雜度是 O(n * m) 的。其中有兩個(gè)維度,一是玩家的總數(shù),二是運(yùn)營的時(shí)間。游戲服務(wù)器需要把運(yùn)營過程中的數(shù)據(jù)吐出,保存到可以處理這么大數(shù)據(jù)量的數(shù)據(jù)庫中去。我們把這部分?jǐn)?shù) 據(jù)稱為運(yùn)營 log ,這個(gè)名稱我覺得不太合適,因?yàn)樗菀缀统绦蜉敵龅墓┱{(diào)試分析的錯(cuò)誤 log 相混淆,不過歷史上在網(wǎng)易工作時(shí)大家都這么叫,我也不打算起個(gè)新名詞了。

陌陌爭霸在服務(wù)器方面的選型和構(gòu)架按著這個(gè)思路做出來:

我們用 redis 保存玩家的數(shù)據(jù),考慮到玩家數(shù)量可能很多,一個(gè) redis 倉庫可能不夠,我們使用了 32 個(gè) redis 倉庫,按玩家 id 分開存放。在部署方面,可以在用戶數(shù)量較少的時(shí)候,把多個(gè) redis 倉庫部署在同一臺物理機(jī)上,再隨著用戶規(guī)模擴(kuò)大而分開部署。如果 32 個(gè)倉庫不夠的話,進(jìn)一步細(xì)分也不會(huì)是難事。

在前三個(gè)月,我們不用太考慮冷熱數(shù)據(jù)的問題,這個(gè)期間還談不上流失玩家,所有玩家數(shù)據(jù)都是熱數(shù)據(jù)。由于開發(fā)時(shí)間緊迫,我們把冷數(shù)據(jù)處理留到后期再處理。

至于數(shù)據(jù)落地的問題,redis 已有 bgsave 的能力,我們只需要細(xì)調(diào)就好了。

而運(yùn)營 log 和一些隨時(shí)間自然增長的數(shù)據(jù),比如戰(zhàn)斗錄像,我們選擇了不受內(nèi)存限制,且易于做數(shù)據(jù)分析的 mongodb 。由于擔(dān)心數(shù)據(jù)量過大,使用了 mongos 分片。

初期的設(shè)計(jì)就是這樣了,只到今天,也沒有在結(jié)構(gòu)上做什么調(diào)整。但是在操作過程中踩了許多坑,都是值得好好記錄下來的經(jīng)驗(yàn)。

預(yù)告:陌陌游戲平臺的第二款游戲:陌陌勁舞團(tuán)先于陌陌爭霸半個(gè)月上線。上線后不到兩天就宣布停服,停服時(shí)間一再延長,一直拖了一周。傳言說問題就出在數(shù)據(jù)庫這塊。下篇打算八卦一下這個(gè)事情。

原文地址。51CTO經(jīng)作者授權(quán)轉(zhuǎn)載。

責(zé)任編輯:徐川 來源: blog
相關(guān)推薦

2014-03-09 23:29:12

2014-03-09 23:22:26

手游開發(fā)數(shù)據(jù)庫

2014-03-05 13:27:09

陌陌爭霸數(shù)據(jù)庫

2015-03-31 18:26:43

陌陌社交

2012-08-31 14:36:19

陌陌林志霖社交應(yīng)用

2012-08-27 09:39:23

陌陌社交APP

2014-07-25 15:41:12

陌陌WOT2014GoRedis

2021-12-06 16:35:33

QQ微博社交軟件

2014-08-15 17:51:39

聽云

2015-05-12 14:34:09

陌陌

2015-12-11 16:07:03

光合資本

2015-05-27 11:05:46

阿里云陌陌CDN

2015-11-11 15:17:16

雙十一單身陌陌

2012-08-21 15:52:48

2024-04-01 08:05:27

Go開發(fā)Java

2015-07-24 16:49:40

陌陌禮物

2012-11-14 09:45:57

陌陌

2012-08-23 16:41:10

陌陌投資

2014-05-13 14:11:36

GoRedis

2015-07-23 11:53:39

我是歌手
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产99一区视频免费| 国产高清亚洲| 久久久精品中文字幕麻豆发布| 2018中文字幕一区二区三区| 在线观看福利片| 日韩综合av| 性久久久久久久久久久久| 欧美一区少妇| av在线亚洲天堂| 亚洲永久在线| 欧美大尺度在线观看| 日韩av一二区| 国产欧美88| 日本二三区不卡| 欧美极品少妇无套实战| 成人性生交大片免费看午夜 | 亚洲va天堂va欧美ⅴa在线| 一本色道久久综合| 久久久精品在线| 欧美老熟妇乱大交xxxxx| 精品国产三区在线| 在线观看一区不卡| 国产午夜福利100集发布| 久草资源在线| 中文一区在线播放| 蜜桃传媒视频麻豆一区| 亚洲第一大网站| 精品一区二区三区蜜桃| 日韩免费精品视频| 日本网站在线免费观看| 中文无码久久精品| 日韩中文字幕在线| 成熟妇人a片免费看网站| 久久丁香四色| 欧美日韩日日摸| 人妻丰满熟妇av无码区app| 96av在线| 亚洲午夜久久久久久久久电影网| 日本特级黄色大片| 99青草视频在线播放视| 久久精品在线观看| 国产精品午夜av在线| 99久久国产免费| 精品制服美女久久| 国产欧美日韩高清| 丰满熟女人妻一区二区三| 欧美专区在线| 日韩av黄色在线观看| 国产精品第9页| 在线日韩电影| 午夜精品一区二区三区在线播放| 九九热视频精品| 国产主播精品| 久久久久久午夜| 日本一区二区网站| 一本综合久久| 日韩av黄色在线观看| 久久精品视频1| 欧美专区一区二区三区| 日本免费久久高清视频| 乱子伦一区二区三区| 日韩影院免费视频| 国产精品小说在线| 国产精品久久久久久免费播放| 久久99国产精品免费网站| 国产欧美日韩亚洲精品| 国产男男gay体育生网站| 国产酒店精品激情| 国产精品视频入口| 国产在线观看精品一区| 亚洲国产精品传媒在线观看| 影音先锋在线亚洲| 在线āv视频| 欧美日韩国产一区二区三区| 丰满少妇被猛烈进入高清播放| 成人福利视频| 欧美日本在线播放| 亚洲成a人无码| 日本欧美高清| 自拍偷拍亚洲一区| 国产这里有精品| 日韩午夜一区| 国产精品日韩欧美综合| 精品人妻一区二区三区浪潮在线| av在线不卡电影| 成人午夜电影在线播放| 欧美人体大胆444www| 亚洲国产精品成人久久综合一区| 最近看过的日韩成人| 俺来也官网欧美久久精品| 黑人巨大精品欧美一区二区| 牛夜精品久久久久久久| 91成人在线精品视频| 亚洲精品一区在线观看香蕉 | 亚洲欧洲精品成人久久奇米网| av不卡在线免费观看| free性欧美| 欧美性一区二区| 佐佐木明希电影| 欧美久久精品一级c片| 欧美久久精品午夜青青大伊人| www日韩精品| 极品少妇xxxx偷拍精品少妇| 国产美女99p| 天堂а√在线官网| 日韩欧美中文字幕在线观看| 一二三级黄色片| 校花撩起jk露出白色内裤国产精品 | 欧美美女一区| 97色在线视频观看| 国产精品久久久久久久免费看| 91年精品国产| eeuss中文| 日韩三区免费| 亚洲国产成人爱av在线播放| 国产探花在线视频| 丝袜美腿成人在线| 国产一区二区三区高清视频| 免费网站免费进入在线| 色综合久久综合中文综合网| 日本中文字幕精品| 国产精品久久久久无码av| 2019中文在线观看| 亚洲欧美另类视频| 亚洲视频免费观看| 成人亚洲精品777777大片| 三级精品视频| 午夜精品99久久免费| 国产黄a三级三级看三级| 欧美国产精品一区二区| 国产三区在线视频| 日韩av字幕| 欧美精品成人在线| 亚洲国产精品二区| 亚洲精品免费在线| 亚洲第一区第二区第三区| 成人综合一区| 国产精品成人播放| 国产在线一二| 在线观看亚洲专区| 日本一道本视频| 日韩激情中文字幕| 日产精品久久久一区二区| 美脚恋feet久草欧美| 日韩成人性视频| 国产精品xxxx喷水欧美| 成人黄色在线视频| 国产精品www在线观看| 一区二区三区欧洲区| 欧美老肥婆性猛交视频| 国产夫妻性生活视频| 一区二区三区中文免费| 古装做爰无遮挡三级聊斋艳谭| 7777久久香蕉成人影院| 亚洲一区二区三区在线视频| 亚洲制服国产| 精品对白一区国产伦| 日韩精品视频免费播放| 91一区二区三区在线观看| 日韩精品―中文字幕| 私拍精品福利视频在线一区| 热99精品只有里视频精品| 黄色av免费在线看| 欧美日韩精品一区二区三区| 大地资源高清在线视频观看| 国产精品一级二级三级| 狠狠噜天天噜日日噜| 国产一区在线电影| 欧美孕妇与黑人孕交| 国产女主播在线写真| 欧美日韩一区二区三区视频| 在线观看亚洲网站| 成人午夜大片免费观看| 欧美日韩亚洲一| 日本久久黄色| 操一操视频一区| 无码小电影在线观看网站免费| 亚洲视频综合网| 97人妻人人澡人人爽人人精品 | 午夜精品三级久久久有码| 久久伊人蜜桃av一区二区| 亚洲a级黄色片| 激情欧美日韩一区| 图片区小说区区亚洲五月| 99久久999| 97超级碰在线看视频免费在线看| 国产日产精品久久久久久婷婷| 欧美一区二区大片| 日本三级小视频| 国产精品传媒在线| yy6080午夜| 美美哒免费高清在线观看视频一区二区| www国产免费| 久久成人av| 97视频热人人精品| 向日葵视频成人app网址| 久久色精品视频| 污视频软件在线观看| 欧美日韩国产综合久久| av大片免费在线观看| 日韩美女视频19| 国产ts在线播放| 国产风韵犹存在线视精品| 蜜臀久久99精品久久久酒店新书| 综合久久综合| 午夜一区二区三区| 美女网站色精品尤物极品姐弟| 国产一区玩具在线观看| 午夜裸体女人视频网站在线观看| 欧美理论电影在线观看| 福利片在线观看| 日韩av一区在线| 国产三级伦理片| 在线观看亚洲精品| 免费在线不卡视频| 亚洲午夜久久久久久久久久久 | 天堂91在线| 日韩精品一区二区三区中文不卡| 少妇久久久久久久| 精品久久久久久亚洲精品| 精品欧美一区二区久久久久| 国产欧美1区2区3区| 极品粉嫩小仙女高潮喷水久久| 国产精品羞羞答答xxdd| 福利视频999| 免费av成人在线| 日韩欧美xxxx| 免费中文字幕日韩欧美| www.99热这里只有精品| 欧美网站在线| 日韩亚洲欧美一区二区| 91青青国产在线观看精品| 青青草久久网络| 亚洲精品国产setv| 久久国产精品亚洲va麻豆| 中文字幕日韩在线| 91久久大香伊蕉在人线| 北岛玲精品视频在线观看| 国产91亚洲精品| 午夜裸体女人视频网站在线观看| 韩国19禁主播vip福利视频| 中文字幕伦理免费在线视频| 精品国偷自产在线| 日本在线视频观看| 国产亚洲xxx| 国产在线自天天| 中文字幕欧美国内| av在线电影院| 日韩小视频网址| 国产精品久久久久久福利| 中文字幕日本精品| 久久精品视频免费看| 久久综合网hezyo| 91精品久久| 欧美激情精品久久久久久久变态| 日韩免费影院| 羞羞色国产精品| 亚洲欧美韩国| 国产精品欧美日韩| 国产精品毛片aⅴ一区二区三区| 成人激情综合网| 亚洲性视频在线| 国产日韩精品久久| 自拍偷拍精品| 亚洲一区二区三区免费看| 久久精品99久久无色码中文字幕| 亚洲三区在线| 国产一区视频在线观看免费| koreanbj精品视频一区| 久久久久网站| 亚洲免费成人在线视频| 国产福利一区二区| 日本免费福利视频| 中文字幕第一页久久| 色欲一区二区三区精品a片| 亚洲制服丝袜av| aaa人片在线| 欧美美女bb生活片| 亚洲国产精品suv| 亚洲香蕉成人av网站在线观看| 午夜免费视频在线国产| 欧美极品欧美精品欧美视频 | gogo在线观看| 97成人精品视频在线观看| 日韩影片中文字幕| 亚洲一区二区三区777| 美日韩黄色大片| 亚洲欧美日本国产有色 | 久久久久国产精品麻豆ai换脸| 天堂资源在线视频| 亚洲影视在线观看| 免费黄色一级大片| 精品对白一区国产伦| 999国产在线视频| 欧美极品欧美精品欧美视频| 成人亚洲免费| 国内精品二区| 久久久五月天| 日本精品久久久久中文字幕| 国产一区不卡视频| 欧美福利第一页| 亚洲第一在线综合网站| 亚洲在线精品视频| 日韩精品黄色网| 色a资源在线| 91精品视频观看| 九九视频精品全部免费播放| 精品一区二区三区毛片| 天堂一区二区在线| 国产白袜脚足j棉袜在线观看| 国产精品网友自拍| 成人午夜视频在线播放| 日韩精品一区二| 国产二区三区在线| 国产精品久久久久久久av大片| 久久99国产精品久久99大师| 在线视频91| 日韩av一区二区在线影视| 91丝袜在线观看| 亚洲一区二区三区美女| 国产又粗又长又黄| 国产亚洲日本欧美韩国| 忘忧草在线影院两性视频| 国产成人亚洲欧美| 影视一区二区| 奇米视频888| 欧美极品另类videosde| 日韩欧美一级视频| 亚洲激情视频网站| 91www在线| 成人女人免费毛片| 欧美在线高清| 中文字幕资源在线观看| 国产精品久久久久久久久快鸭| 在线观看亚洲黄色| 亚洲丝袜一区在线| 日韩伦理三区| 日本午夜精品电影| 视频一区二区欧美| av黄色在线免费观看| 色噜噜狠狠成人网p站| 青青草免费在线| 欧美一区二区影院| 亚洲人成网www| 十八禁视频网站在线观看| 91网站黄www| 青青草免费观看视频| 日韩久久精品电影| 欧美日韩大片| 日韩电影大全在线观看| 日韩极品在线观看| 三级黄色录像视频| 日韩欧美不卡一区| av影视在线| 久久一区二区精品| 久久久www| 羞羞在线观看视频| 欧美一卡2卡三卡4卡5免费| 国产在线拍揄自揄拍视频| 久久99精品国产一区二区三区| 午夜在线播放视频欧美| 亚洲精品国产熟女久久久| 欧美日韩一区二区三区在线看| 黄色一级片在线观看| 粉嫩av四季av绯色av第一区| 在线亚洲国产精品网站| 天堂久久精品忘忧草| 欧美日韩亚洲高清一区二区| 久久五月精品| 好看的日韩精品视频在线| 天使萌一区二区三区免费观看| 黄色aaa视频| 欧美丰满高潮xxxx喷水动漫| 日本三级在线观看网站| 精品亚洲第一| 蜜臂av日日欢夜夜爽一区| 欧美日韩精品在线观看视频| 亚洲精品国产电影| 成人在线不卡| 国产黄色激情视频| 久久久久久毛片| 国产裸体无遮挡| 5566成人精品视频免费| 91综合久久一区二区| 色综合久久五月| 欧美日韩中文字幕一区二区| 啦啦啦中文在线观看日本| 欧美精品一区二区视频 | 亚洲精品乱码久久久久久蜜桃图片| 精品久久久久久久久久国产| 永久免费av在线| 精品欧美国产一区二区三区不卡| 日韩成人免费电影| 免看一级a毛片一片成人不卡| 亚洲午夜精品久久久久久性色| 综合欧美亚洲| 成年人三级黄色片| 精品国产1区2区| 中文av资源在线| 手机看片福利永久国产日韩|