精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

午夜老司机精品| 在线日韩欧美视频| 久久久亚洲国产精品| 婷婷伊人综合中文字幕| 久久av一区| 日韩在线国产精品| 中文字幕一区三区久久女搜查官| 日本黄色免费在线| 国产精品蜜臀在线观看| 国产精品10p综合二区| 午夜婷婷在线观看| 欧美成人午夜| 亚洲一区www| 中文字幕在线播放一区二区| 久久野战av| 亚洲激情一二三区| 亚洲韩国在线| 亚洲aaa在线观看| 国内精品第一页| 日韩av电影国产| 久久黄色小视频| 久久在线视频| 亚洲欧美中文日韩在线v日本| 26uuu国产| 999色成人| 欧洲在线/亚洲| 男人添女荫道口图片| 欧美人xxx| 国产喷白浆一区二区三区| 成人在线免费网站| 国产又粗又大又爽| 石原莉奈在线亚洲二区| 97超碰色婷婷| 国产午夜久久久| 亚洲激情中文在线| 日韩在线免费观看视频| 国产又粗又猛又爽视频| 亚洲春色h网| 亚洲精品美女在线观看播放| 91视频这里只有精品| 小黄鸭精品aⅴ导航网站入口| 亚洲成av人在线观看| 国产小视频免费| 69视频在线观看| 久久亚洲私人国产精品va媚药| 国产99在线播放| 99久久精品国产一区色| 蜜臀久久99精品久久久久久9| 国产97免费视| 久久久黄色大片| 男人的天堂亚洲| 日韩美女在线观看| 精品人妻一区二区三区潮喷在线| 国产农村妇女毛片精品久久莱园子| 欧美精品videossex性护士| www.超碰在线观看| 欧美1区2区| 欧美高清在线播放| 久久精品www| 日韩午夜av| 奇米四色中文综合久久| 免费观看日批视频| 日韩国产欧美在线观看| 国产精品三级网站| 国产原创中文av| 国产乱理伦片在线观看夜一区| 91精品久久久久久久久久久| 99精品在线看| 91婷婷韩国欧美一区二区| 久久综合入口| a√在线中文网新版址在线| 国产精品乱码一区二三区小蝌蚪| 日本不卡一区二区三区四区| 欧美性爽视频| 欧美日韩在线影院| 国产精品69页| 国产精久久久| 亚洲韩国日本中文字幕| 人妻激情偷乱频一区二区三区| 乱亲女h秽乱长久久久| 亚洲精品在线91| 91大神福利视频| 亚洲性感美女99在线| 浅井舞香一区二区| 一级aaaa毛片| 成人99免费视频| 视频一区亚洲| 在线看福利影| 色综合久久久久| 亚洲av无日韩毛片久久| 老牛影视av一区二区在线观看| 亚洲天堂av综合网| 欧美精品色哟哟| 久久精品人人| 91视频最新| 黄色片在线播放| 一区二区三区在线视频观看 | 三上悠亚 电影| 欧美精品中文| xvideos成人免费中文版| 国产在线一二区| 麻豆精品视频在线观看免费| 国产精品久久九九| 日韩免费啪啪| 日韩欧美主播在线| 亚洲视频在线不卡| 国产一区二区三区四区五区传媒| 欧美大片免费观看在线观看网站推荐| 亚洲欧美一区二区三区在线观看| 国产成人亚洲综合a∨婷婷| 日本一区二区在线视频| av在线不卡免费| 在线播放中文一区| 免费看裸体网站| 亚洲国产日韩欧美一区二区三区| 国产欧美在线看| 欧美欧美欧美| 五月天亚洲婷婷| 最好看的中文字幕| 国产精品精品| 国产精品久久久久久久久久久新郎 | 亚洲一区 视频| 国产一区二区三区四区五区入口 | 一本加勒比北条麻妃| 欧美日韩国产成人精品| 国产美女被下药99| 亚洲av成人精品一区二区三区在线播放 | 日韩免费视频一区| 国产精品免费在线视频| 日韩精品91亚洲二区在线观看 | 国产精品免费久久久久久| 婷婷av一区二区三区| 洋洋成人永久网站入口| 久久久久久综合网| 99久久99热这里只有精品| 国产精品96久久久久久| 激情综合闲人网| 欧美小视频在线| 国产制服丝袜在线| 99视频精品| 国产综合18久久久久久| 99爱在线观看| 亚洲国产中文字幕久久网| 久久高清免费视频| 成人涩涩免费视频| www精品久久| 精品福利网址导航| 91黄色8090| 青青视频在线观| 日本韩国一区二区三区视频| 成人精品999| 日韩精品每日更新| 在线视频91| 麻豆精品一区| 久久久中精品2020中文| 天天操天天操天天| 亚洲第一搞黄网站| 免费成人深夜夜行p站| 久久久成人网| 亚洲精品9999| 亚洲国产精选| 欧美精品一二区| 三级小视频在线观看| 欧美性高潮床叫视频| 日本无删减在线| 欧美三级日本三级少妇99| www久久久久久久| 麻豆久久久久久| 女同性恋一区二区| 哺乳挤奶一区二区三区免费看| 国内自拍欧美激情| 日韩av视屏| 欧美日韩色综合| 青青草国产在线观看| 成人免费毛片片v| 无码人妻丰满熟妇区毛片| 日韩免费看片| 国产精品高清一区二区三区| 伊人网在线播放| 中文字幕日韩在线观看| 精品人妻少妇AV无码专区| 懂色av一区二区三区| 影音先锋男人在线| 国产成人高清在线| 无码人妻丰满熟妇区96| 日韩在线中文| 成人片在线免费看| 欧美影视资讯| 久久青草精品视频免费观看| 国产小视频免费在线观看| 777亚洲妇女| 久久久成人免费视频| 国产精品第13页| 黄色网址在线视频| 精品在线免费观看| 欧洲黄色一级视频| 天天做天天爱天天综合网| 精品久久sese| 精品视频91| 国产精品流白浆视频| 成人女同在线观看| 按摩亚洲人久久| 免费成人av电影| 欧美r级电影在线观看| 中文字幕欧美人妻精品| 精品久久久久久亚洲国产300 | 四虎精品一区二区三区| 欧美日韩国产高清一区二区| 国产免费观看av| 一区二区三区四区五区视频在线观看 | 久久69av| 国产免费一区视频观看免费| 在线观看网站免费入口在线观看国内| 欧美成人免费播放| 成人欧美亚洲| 亚洲欧美一区二区激情| 欧美一区,二区| 日韩一区二区在线观看视频播放| 中文字幕 视频一区| 色综合久久综合中文综合网| 精品视频久久久久| 亚洲男帅同性gay1069| 日本黄色网址大全| 99久久精品免费精品国产| 久久久久亚洲av片无码v| 蜜臀久久久99精品久久久久久| 大香煮伊手机一区| 国产精品尤物| 日韩视频免费播放| 韩国av一区| 800av在线免费观看| 香蕉久久网站| 熟妇熟女乱妇乱女网站| 天天射天天综合网| 亚洲人成77777| 日韩欧美精品一区| 午夜精品视频在线观看一区二区| 精品中文一区| 青青草国产精品| 免费短视频成人日韩| 免费国产一区二区| 一区二区三区韩国免费中文网站| 九色综合婷婷综合| 女仆av观看一区| 精品欧美日韩| 曰本一区二区三区视频| 欧美黄色直播| 欧美手机视频| 亚洲欧美国产不卡| 91精品综合| 成年人深夜视频| 激情综合在线| 丰满人妻中伦妇伦精品app| 国产麻豆综合| the porn av| 国产专区综合网| 波多野吉衣在线视频| 成人午夜碰碰视频| 91精品小视频| 国产欧美日韩在线看| 久久视频一区二区三区| 亚洲欧洲精品一区二区精品久久久 | 成人看的羞羞网站| 椎名由奈jux491在线播放 | 黄色小视频免费网站| 国产一区二区在线观看免费 | xxxx日韩| 久久涩涩网站| 日韩国产一区二区三区| 草草草视频在线观看| 99国产精品久久久久久久成人热| 午夜肉伦伦影院| 蜜桃视频免费观看一区| 三级av免费看| 91麻豆国产福利精品| 国产视频123区| 亚洲高清免费观看| 伊人久久久久久久久久久久| 欧美久久久久久蜜桃| 韩国av免费在线| 国产亚洲成av人片在线观看桃| 久操视频在线播放| 91黑丝在线观看| 色999韩欧美国产综合俺来也| 国产精品99久久久久久久 | 中文字幕欧美视频在线| av在线播放观看| 人妖精品videosex性欧美| 国产精品无码久久久久| 国产精品一区二区三区精品| 日本黄色精品| www..com日韩| 美国一区二区三区在线播放| 丝袜熟女一区二区三区 | 国产午夜激情视频| 欧美日韩视频在线第一区 | 精品区在线观看| 一区二区三区视频免费在线观看 | 国产精品美女呻吟| 精品成人自拍视频| 老司机av福利| 丝袜诱惑制服诱惑色一区在线观看 | 久久97精品久久久久久久不卡| 欧美1级2级| 国产精成人品localhost| 日韩一级毛片| 人妻内射一区二区在线视频| 国产99久久久国产精品| 亚洲av无一区二区三区| 色综合天天狠狠| 黄色一级大片在线免费看国产一 | 交100部在线观看| 亚洲一区亚洲二区亚洲三区| 精品久久中文| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产精品一二一区| 欧美一级特黄高清视频| 在线观看av不卡| 黄色在线视频观看网站| 91av在线国产| 国产精品chinese在线观看| 日本女人高潮视频| 蜜桃传媒麻豆第一区在线观看| 日本黄色网址大全| 五月开心婷婷久久| 亚洲精品国产片| 欧美成人网在线| 国色天香久久精品国产一区| 亚欧洲精品在线视频免费观看| 久久黄色网页| 日韩av在线看免费观看| 欧美日韩亚洲精品一区二区三区| 全国男人的天堂网| 欧美激情一区二区久久久| 国产日韩在线观看视频| 99re99热| 黑人巨大精品欧美一区| 欧美性x x x| 欧美一级午夜免费电影| 成人黄视频在线观看| 91精品久久久久久久久久久| 天天影视天天精品| 午夜久久福利视频| 亚洲人精品午夜| 国产极品999| 色综合久久悠悠| 99亚洲乱人伦aⅴ精品| 日韩精品视频在线观看视频 | 久久久久久久久久码影片| 一本久久知道综合久久| 一级性生活大片| 色噜噜狠狠成人中文综合| 国产黄在线观看免费观看不卡| 国产不卡av在线免费观看| 青青草原综合久久大伊人精品| 色一情一区二区| 一区二区三区资源| 色一情一乱一乱一区91av| 97视频在线观看播放| 亚洲日本三级| 9久久婷婷国产综合精品性色| 中文字幕在线观看一区二区| av在线资源观看| 97视频在线播放| av中字幕久久| 丰满人妻一区二区三区53视频| 欧美日韩国产丝袜另类| 国产一级片在线| 亚洲va欧美va国产综合剧情| 亚洲婷婷免费| 四虎影成人精品a片| 欧美二区乱c少妇| а√天堂8资源中文在线| 欧美一区2区三区4区公司二百| 麻豆国产欧美日韩综合精品二区| 538任你躁在线精品视频网站| 日韩精品欧美国产精品忘忧草| 成人国产精选| 国产aaa免费视频| 中文字幕乱码一区二区免费| av男人天堂网| 日韩美女写真福利在线观看| 影音先锋日韩在线| 亚洲天堂成人av| 3d成人h动漫网站入口| 黄色在线观看www| 99久久久无码国产精品性色戒| av电影在线观看不卡| 伊人网免费视频| 久久久日本电影| 日韩在线看片| 中文字幕av网址| 日韩天堂在线观看| 三级成人黄色影院| 亚洲爆乳无码精品aaa片蜜桃| 国产亚洲综合色| 手机av在线免费观看| 国产精品天天狠天天看| 亚洲欧美卡通另类91av| 免费在线黄色网|