青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-380  評論-37  文章-0  trackbacks-0
高性能的網絡游戲服務器的設計[轉]
2007年10月05日 星期五 18:08
    說起高性能的網絡游戲,有2個典范,1個是暴雪的WOW,另外一個要數騰訊的QQGame了,因為對于MMPRPG的體系接觸不深,幾乎屬于文盲,沒有太多的發言權,而自己又是搞休閑游戲開發的所以本文就主要談談QQGame了。

    前些天通過朋友得到了QQGame的一個系統分析的文檔,看完后很是震驚,徹底被QQ的設計所折服了,到底是千萬人在線系統經驗的擁有者,牛!

    通過資料了解到QQGame目前有以下讓我欣賞的特性:

1.單機最高容納35,000人同時在線,對沒有看錯是這么多,由于它適用了Linux下高性能的網絡處理模型ePoll技術,并且一系列高超的優化技術輕松破萬人,當然為了穩定性考慮單機保持了2萬人的容量,此時的帶寬消耗為近30M;
2.采用共享內存方式高速完成進程間高速通訊;
3.服務器的擴充方式不是平面的方式,而是裂變式的擴充方式,形成負載均衡陣列樹狀結構;
4.所有的游戲服務器不是直接和數據庫聯系,而是和數據proxy(qq管叫數據交換機和路由器)進行聯系,由此帶來的就是游戲用戶數據的分布存儲,我分析著應該是proxy上記錄著這個用戶數據所在的實際的dbserver的信息,然后定時的將最新的用戶信息寫回到db中去,這樣就大大緩解了數據庫服務器的壓力,而且可以非常平滑的將數據分裂開來,數據庫服務器也就可以無限的擴充,當然我覺得肯定有個數據庫信息索引了用戶的id和對應的存儲地點的關聯關系,這點就類似于google的原理了,所以對于數據庫的硬件要求也就不是那么高了,qqgame的一組服務器通常是7臺服務器,可以容納5萬人,其中就包含了數據庫服務器,這點就不是棋牌游戲所常使用的數據集中存儲了;
5.游戲服務器的網絡和邏輯分開,不僅僅是層次上的分開,而是在進程上分開,然后中間通過共享通道進行管理和協調,并且增加了輔助線程,在主線程處理大壓力的異步的操作的時候直接交給輔助線程處理,保障了游戲服務器的高效性運轉。
    作為游戲服務器的結構方面(以下只討論休閑游戲部分,MMORPG服務器不屬于討論范圍)的設計已經相對于成熟并且統一,結構方面和3年前我所接觸的中游系的那套平臺沒有太大的差異,無非是服務器群采用星狀的結構,以1個中心節點作為核心,然后向四周擴散出一些應用服務器,如負責登陸的LoginServer,負責具體游戲邏輯的GameServer等等,當然最精簡的結構是這樣的,這樣的結構可以滿足50萬以下同時在線的容量,如果為了滿足更大的容量,如QQGAME這樣的目前已經有200萬以上同時在線的超大容量的應用則需要額外的優化,從這個結構中分離出一些子應用獨立開發出一些服務器端來處理,一方面降低偶合度,另外一方面作為高可用性系統為負載均衡提供條件.

關于負載均衡,作為整個游戲平臺的所有服務器.我覺得除了具體的游戲邏輯服務器以外都是可以采用負載均衡,多點分擔的方式來處理,惟獨邏輯服務器不可以,因為休閑游戲,都是分層次的,不管泡泡堂也好,QQGAME也好這些游戲其實在客戶端的表現形式都是分層次的,如QQGAME就是LOBBY-HALL-ROOM這樣的結構,LOBBY這層就是游戲廣場了,可以看到所有的游戲類別,游戲服務器和具體的游戲大廳,比如:牌類–斗地主–新手場–新手場1 這樣的順序,傳統的設計中新手場1就是屬于一個獨立的游戲邏輯服務器擁有一個獨立的IP以及偵聽端口,在服務器端通常也是一個獨立的進程.一般的游戲服務器允許的連接數通常都是300-600人之間超過的就提示服務器已滿了,這樣做的原因并不是因為進程的限制因為一個進程完全可以做到同時讓3000以上的玩家同時游戲,而是人為設計的考慮,因為在游戲邏輯服務器中有很多需要廣播的消息,如游戲玩家的聊天信息,某個房間的開始信息,結束信息,某人進出的信息等,而對于廣播來說,給300個人廣播和給3000個人廣播所消耗的資源是絕對沒有可比性的。但是通過從進程上獨立來處理這個傳統的方式也有個缺陷,比如通過開10個進程來達到3000人和1個進程達到3000人,如果不考慮廣播的因素在內的話前者的資源是要高與后者的資源的,并且進程間的通訊也要比進程內的通訊要耗費資源和復雜度方面要高很多,比如說如果要實現一個需求讓玩家可以在同一類游戲中可以使用小喇叭類或者跨游戲服務器找人之類的功能的話,同一個進程的優勢就顯示出來了,為此QQGAME所使用的是Channel(頻道)的概念,即一個游戲邏輯服務器的進程可以容納5000人左右,然后服務器端通過設置分割出很多的Channel如新手1,新手2,新手3之類的傳統意義上的游戲大廳,將消息的分發范圍進行隔離,節約了資源。這一點可以通過查看連接屬性看到,連接QQGAME的同類型靠近的幾個游戲大廳其實端口和IP都是一致的。

我們目前的游戲服務器類型主要有3類:CenterServer,管理著所有的服務器連接,LoginServer 負責處理用戶的登陸、注冊,并且用來給用戶傳遞游戲邏輯服務器列表等功能, GameServer具體邏輯服務器,根據不同的邏輯來實現不同的游戲需求。

當然,根據業務的發展需要,我們正準備把用戶的狀態在服務器端保存,并且增加一個類似IM服務器的功能來滿足玩家跨服務器聊天和查詢其他玩家狀態的需要。以及GM服務器實現多功能的網管室的需求,這些將在以后慢慢寫。

今天開始寫些技術的題材,一方面記錄一些自己的本分工作的東西,另外一方面也是充實一下BLOG,工作太忙也沒有什么太多的思緒來一直寫其他的題材,所以就拿工作來填充了.同時如果有人有幸看到了這些文章,并且也有興趣的話也希望多多探討.

先簡單介紹一下,由于本人的工作就是游戲開發公司的,一直與游戲開發打交道,主要做休閑類的游戲,目前又以棋牌游戲為主,在這個行業中摸爬滾打了整3年了,從運營開始做起,運營過當時國內一流的游戲平臺中游系列的產品,然后由于合作方面的原因又自主開發過一套游戲平臺,然后由于發展方向上的分歧出來單獨做,目前在開發并運維一套全新的產品.

這篇主要是對于游戲服務器的一些想法,結合目前自身的產品的一些問題延伸開來的.

目前我們的服務器還是屬于Windows平臺的架構,暫時還沒有考慮到跨平臺,主要原因有2:
1.成本:作為公司來說首先得考慮的就是成本了,雖然說Linux類的平臺存在著操作系統成本低廉,性能優異,穩定性高這幾個特色,但是作為全局考慮來說,一個Linux的系統管理員,以及開發人員的成本要比Windows平臺要高很多,并且作為操作系統方面是免費的,但是支持幾乎是沒有的只有一些不適合商業應用的開源社區作為支撐,要得到更加好的服務或者額外的支持還是得通過大廠商的高額的產品或服務來實現,而Windows平臺則不同,雖然操作系統貌似價格不扉,但是本身就帶了很多的模塊,比如組件服務,日志服務等等,加上平臺上各種軟件的數量也和Linux下的不是同一量級的,可選擇性要大的多,而讓Linuxer所詬病的Win32的安全性其實完全可以通過另外獨立的安全模塊,如硬件防火墻等來完善,畢竟操作系統不是專門做安全防護的Linux也存在很多的漏洞,并且隨著Linux發行版的日益增多,用戶的逐漸了解,漏洞也日益的增多.
2.開發效率.無疑Visual Studio系列開發套件是目前開發領域最方便最強大的IDE環境,這已是不爭的事實,而如果用VI + GCC的模式去開發LINUX下面的服務器其效率和質量至少從我目前的水平(可以部分代表國內目前中小游戲軟件開發商實際現狀)要徹底的領悟并轉換需要一定的時間,并且還沒有成熟的開發平臺作為保證, JAVA好象有 但是C++還沒有聽說有超過VC++的.
posted on 2009-02-12 02:41 小王 閱讀(1907) 評論(0)  編輯 收藏 引用 所屬分類: 游戲服務器端開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本色道婷婷久久欧美| 欧美影院视频| 日韩性生活视频| 欧美国产日韩免费| 久久性色av| 亚洲高清123| 亚洲国产精品视频一区| 99re这里只有精品6| 日韩午夜av在线| 亚洲欧美在线x视频| 久久福利一区| 免费试看一区| 国产精品igao视频网网址不卡日韩| 欧美久久久久免费| 国产精品久久一卡二卡| 黄色一区二区在线| 一本色道久久综合亚洲精品不 | 欧美日韩精品一区二区三区| 欧美日韩黄视频| 国产欧美成人| 亚洲啪啪91| 亚洲欧美清纯在线制服| 免费欧美网站| 亚洲女人天堂成人av在线| 久久婷婷一区| 国产精品久久久一本精品| 亚洲第一色中文字幕| 亚洲一区二区在线免费观看| 玖玖视频精品| 在线综合+亚洲+欧美中文字幕| 久久九九热re6这里有精品| 欧美日韩伦理在线免费| 欲色影视综合吧| 先锋资源久久| 亚洲精品久久久久久久久| 久久高清免费观看| 国产精品日韩久久久| 日韩亚洲欧美综合| 美日韩精品视频| 午夜精品剧场| 欧美视频在线观看免费网址| 亚洲国产精品传媒在线观看 | 亚洲电影专区| 久久aⅴ国产欧美74aaa| 亚洲伦理在线| 久久亚洲精选| 国内成+人亚洲| 性欧美大战久久久久久久久| 99在线精品免费视频九九视| 欧美精品成人一区二区在线观看| 国产在线拍揄自揄视频不卡99 | 亚洲免费在线观看视频| 亚洲精品久久久蜜桃| 免费视频久久| 亚洲精品麻豆| 亚洲国产视频一区二区| 一区二区欧美在线| 亚洲欧美在线免费| 午夜久久久久久久久久一区二区| 欧美1区免费| 国产精品毛片大码女人| 99视频有精品| 99综合视频| 国产精品国产三级欧美二区 | 一本大道av伊人久久综合| 欧美国产日本在线| 91久久精品日日躁夜夜躁欧美| 久久男女视频| 久久久亚洲一区| 韩国成人精品a∨在线观看| 久久青青草原一区二区| 亚洲日本激情| 欧美性猛交xxxx免费看久久久| 国产精品久久久久久久久久久久久| 一本久道久久综合狠狠爱| 欧美精品1区| 亚洲黄色一区二区三区| 欧美激情精品久久久久久蜜臀| 老司机一区二区| 亚洲免费观看在线观看| 日韩图片一区| 国产日本欧美在线观看| 久久夜色精品国产亚洲aⅴ| 久久久人人人| 99re66热这里只有精品3直播| 99伊人成综合| 国产在线精品二区| 91久久夜色精品国产九色| 欧美视频第二页| 亚洲人成小说网站色在线| 亚洲午夜精品久久久久久浪潮| 欧美精品1区| 欧美乱妇高清无乱码| 亚洲一区国产| 久久免费观看视频| 亚洲一区三区视频在线观看 | 亚洲欧美日本伦理| 欧美一区二区三区四区视频| 亚洲激情图片小说视频| 亚洲一区二区在线视频| 亚洲电影网站| 亚洲欧美日韩视频一区| 亚洲日韩成人| 久久爱www久久做| 在线视频你懂得一区二区三区| 欧美一区三区二区在线观看| 99re66热这里只有精品3直播 | 欧美尤物一区| 亚洲小说春色综合另类电影| 久久久久久久精| 午夜精品一区二区三区四区| 猛男gaygay欧美视频| 欧美中文字幕久久| 欧美视频四区| 亚洲人体1000| 亚洲欧洲精品一区二区精品久久久| 午夜精品久久久久| 亚洲尤物在线视频观看| 欧美粗暴jizz性欧美20| 欧美一区二区三区在线播放| 中国成人黄色视屏| 亚洲精品永久免费精品| 午夜亚洲精品| 亚洲精品色婷婷福利天堂| 红桃视频国产精品| 亚洲综合社区| 亚洲午夜在线观看| 欧美激情国产日韩精品一区18| 葵司免费一区二区三区四区五区| 国产精品成人播放| 亚洲每日更新| 在线视频你懂得一区| 欧美日本视频在线| 夜夜嗨av一区二区三区免费区| 日韩视频一区二区三区| 欧美激情精品久久久久久蜜臀| 欧美激情中文不卡| 亚洲另类自拍| 欧美精品三区| 欧美在线国产精品| 久久久国产亚洲精品| 精久久久久久| 国产日韩欧美日韩| 麻豆久久精品| 曰本成人黄色| 玖玖综合伊人| 欧美黄色aa电影| 最新日韩精品| 午夜激情久久久| 久久国产精品久久久久久久久久| 亚洲国产精品成人久久综合一区| 亚洲欧洲精品一区二区精品久久久| 亚洲福利小视频| 欧美福利视频在线观看| 亚洲欧洲一级| 午夜精品理论片| 好看的亚洲午夜视频在线| 久久精品国产一区二区电影 | 在线一区二区视频| 红桃视频一区| 免费日韩精品中文字幕视频在线| 欧美成人一区二免费视频软件| 91久久久久久久久| 欧美特黄一级大片| 欧美亚洲免费在线| 亚洲国产欧美久久| 亚洲欧美福利一区二区| 国内激情久久| 欧美福利视频在线| 欧美一级播放| 91久久黄色| 久久国产精品一区二区三区四区| 在线看视频不卡| 国产精品久久久一区二区三区| 久久久精品2019中文字幕神马| 亚洲精品中文字幕女同| 久久久91精品国产一区二区三区 | 欧美成人一区二区三区片免费| 一区二区三区波多野结衣在线观看| 国产精品入口福利| 欧美成人一区二区三区在线观看| 亚洲无玛一区| 亚洲欧洲日韩女同| 毛片一区二区三区| 欧美夜福利tv在线| 洋洋av久久久久久久一区| 韩国久久久久| 欧美一区二区三区男人的天堂| 日韩香蕉视频| 红桃视频欧美| 久久在线免费观看| 国产精品成人观看视频免费 | 在线一区免费观看| 欧美黄色一级视频| 久久免费少妇高潮久久精品99| 亚洲图中文字幕| 99精品热视频只有精品10| 亚洲电影在线看| 好吊成人免视频| 国产色产综合产在线视频|