日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

疯狂了!当游戏爱上MongoDB会怎么样???

發布時間:2024/4/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 疯狂了!当游戏爱上MongoDB会怎么样??? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
導讀前端時間魔獸這個電影我相信大家都看過了哈,作為一個碼農,有時候我也會去思考魔獸世界這個游戲背后他的一些設計和實現,比如他用什么數據庫。當然真正用什么數據庫這個我是不確定的,我們今天的主題是當游戲愛上MongoDB,所以我們只聊游戲如果采用MongoDB作為數據庫有哪些好處。

我們知道,游戲的一個特點是需求變化快,為了保持玩家一直有新鮮感,需要不停的往游戲中加入新的元素。就拿一些MMO游戲的裝備(道具)系統為例,假如使用傳統的關系型數據庫來存放這些數據,可能會面臨需要經常做表結構修改這樣的DDL操作。那如果采用MongoDB的話就不會有這個問題,schema-free的特性可以支持一個表(集合)內包含不同結構的文檔。此外,MongoDB直接使用JSON格式進行數據交互,這也是最接近對象模型的,對開發人員來說非常友好。關于如何使用MongoDB進行數據建模可以參考TJ寫的MongoDB進階模式設計。

一些專有場景-道具自動過期和附近玩家

現在很多游戲都走游戲免費道具收費的模式,有很多類似道具自動過期的功能,這可以通過MongoDB的TTL索引來輕而易舉的實現。同樣,現在很多游戲使用地理位置來作為社交系統的一部分,比如附近玩家這樣的功能。這也可以直接利用MongoDB的地理位置索引來做。MongoDB原生支持了這些功能,可以說非常方便。

高可用

以前玩魔獸世界的時候,每個禮拜二都要來一次停服維護。當時大家也習慣了,畢竟魔獸世界還是玩點卡的,游戲時間都是自己花錢買的。但對于現在的免費游戲來說,經常停服,可能玩家都會接受不了。對那些日流水好幾位數字的游戲公司來說,時間就是金錢,停服維護可能就有種自己在不停燒錢的感覺。所以現在都要追求服務高可用,盡可能減少停服時間。數據庫服務通常也是整個游戲服務中的一個重要環節。MongoDB的副本集是一個相當成熟的高可用架構,它通過一主多備結構保證服務的可用性,當主宕機后還存活的備會自動選舉出新的主。


阿里云數據庫MongoDB在MongoDB自身高可用架構下做了進一步增強。采用一主一備一隱藏節點的經典3節點配置,對外暴露兩個VIP提供用戶訪問,在某個節點宕機時自動進行VIP切換,保證用戶始終有2個節點可用。需要注意的是,這必須是用戶正確配置成副本集訪問模式時才生效。

高可擴展

說完高可用,我們來說說高可擴展方面。同樣還是魔獸世界,想必很多早期玩家都體驗過排隊,之所以要排隊,主要是因為服務能力不夠導致。當然,這通常和數據庫無關,不過,一個好的架構師是不會允許有某個環節出現明顯的瓶頸的。MongoDB由于其數據相對獨立的特性,相比于關系型數據庫,較容易進行水平擴展。其Sharding架構已在很多生產環境中久經驗證,業內有些公司對其進一步優化后已在管理上百PB的數據。對于運維人員來說也是相當友好,動態擴容和負載均衡都是自動進行的,用戶只需要選一個好的shard key即可。

回檔

運營游戲有時候會面臨不得不對游戲進行回檔這樣的痛苦選擇。因為程序不可避免會有bug的存在,如果有某個bug被惡意利用,亦或者是人皆會犯錯誤,某個GM不小心手抖發了大量RMB道具,都可能導致較大的經濟損失出現。如果游戲不是很完善,沒有一個更好的解決方案的情況下,這時候可能就要考慮對游戲進行回檔了。對于數據庫數據的回檔來說,MongoDB提供了一個延遲副本集節點的設定來解決這個問題。即,將某個節點配置成落后于最新數據一定的時間量。

當然,這還是很粗粒度的,如果要精確回檔到延遲時間內或者更早的時間點,甚至是任意時間點,就還要在備份恢復這塊上做更多的工作。阿里云MongoDB近期會推出任意時間點恢復的功能,以滿足包括這個場景在內的備份恢復需求,敬請關注。

運營數據分析

現在是大數據時代,通過數據分析輔助運營決策是必不可少的。在數據分析方面,MongoDB提供了Aggregation pipeline和Map-Reduce這兩個強大的功能。其中Aggregation pipeline使用管道處理模型,提供了過濾、分組、排序等豐富的操作支持,具有較簡單的操作性兼顧較好的性能,而Map-Reduce則可以使用JavaScript進行自定義處理,在靈活性上更勝一籌。

總結

綜上所述,MongoDB有如此多的適合于游戲開發場景的特性,還等什么呢?

本文地址: http://www.linuxprobe.com/games-love-mongodb.html

總結

以上是生活随笔為你收集整理的疯狂了!当游戏爱上MongoDB会怎么样???的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。