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

教父的告白
一切都是紙老虎
posts - 82,  comments - 7,  trackbacks - 0

本文作者:sodme
本文出處:http://blog.csdn.net/sodme
聲明:本文可以不經(jīng)作者同意任意轉(zhuǎn)載,但任何對(duì)本文的引用都須注明作者、出處及此聲明信息。謝謝!!

  要了解此篇文章中引用的本人寫(xiě)的另一篇文章,請(qǐng)到以下地址:
http://blog.csdn.net/sodme/archive/2004/12/12/213995.aspx
以上的這篇文章是早在去年的時(shí)候?qū)懙牧耍?dāng)時(shí)正在作休閑平臺(tái),一直在想著如何實(shí)現(xiàn)一個(gè)可擴(kuò)充的支持百萬(wàn)人在線的游戲平臺(tái),后來(lái)思路有了,就寫(xiě)了那篇總結(jié)。文章的意思,重點(diǎn)在于闡述一個(gè)百萬(wàn)級(jí)在線的系統(tǒng)是如何實(shí)施的,倒沒(méi)真正認(rèn)真地考察過(guò)QQ游戲到底是不是那樣實(shí)現(xiàn)的。

  近日在與業(yè)內(nèi)人士討論時(shí),提到QQ游戲的實(shí)現(xiàn)方式并不是我原來(lái)所想的那樣,于是,今天又認(rèn)真抓了一下QQ游戲的包,結(jié)果確如這位兄弟所言,QQ 游戲的架構(gòu)與我當(dāng)初所設(shè)想的那個(gè)架構(gòu)相差確實(shí)不小。下面,我重新給出QQ百萬(wàn)級(jí)在線的技術(shù)實(shí)現(xiàn)方案,并以此展開(kāi),談?wù)劥笮驮诰€系統(tǒng)中的負(fù)載均衡機(jī)制的設(shè) 計(jì)。

  從QQ游戲的登錄及游戲過(guò)程來(lái)看,QQ游戲中,也至少分為三類服務(wù)器。它們是:
第一層:登陸/賬號(hào)服務(wù)器(Login Server),負(fù)責(zé)驗(yàn)證用戶身份、向客戶端傳送初始信息,從QQ聊天軟件的封包常識(shí)來(lái)看,這些初始信息可能包括“會(huì)話密鑰”此類的信息,以后客戶端與后續(xù)服務(wù)器的通信就使用此會(huì)話密鑰進(jìn)行身份驗(yàn)證和信息加密;
第二層:大廳服務(wù)器(估且這么叫吧, Game Hall Server),負(fù)責(zé)向客戶端傳遞當(dāng)前游戲中的所有房間信息,這些房間信息包括:各房間的連接IP,PORT,各房間的當(dāng)前在線人數(shù),房間名稱等等。
第三層:游戲邏輯服務(wù)器(Game Logic Server),負(fù)責(zé)處理房間邏輯及房間內(nèi)的桌子邏輯。

  從靜態(tài)的表述來(lái)看,以上的三層結(jié)構(gòu)似乎與我以前寫(xiě)的那篇文章相比并沒(méi)有太大的區(qū)別,事實(shí)上,重點(diǎn)是它的工作流程,QQ游戲的通信流程與我以前的設(shè)想可謂大相徑庭,其設(shè)計(jì)思想和技術(shù)水平確實(shí)非常優(yōu)秀。具體來(lái)說(shuō),QQ游戲的通信過(guò)程是這樣的:

  1.由Client向Login Server發(fā)送賬號(hào)及密碼等登錄消息,Login Server根據(jù)校驗(yàn)結(jié)果返回相應(yīng)信息。可以設(shè)想的是,如果Login Server通過(guò)了Client的驗(yàn)證,那么它會(huì)通知其它Game Hall Server或?qū)⑼ㄟ^(guò)驗(yàn)證的消息以及會(huì)話密鑰放在Game Hall Server也可以取到的地方。總之,Login Server與Game Hall Server之間是可以共享這個(gè)校驗(yàn)成功消息的。一旦Client收到了Login Server返回成功校驗(yàn)的消息后,Login Server會(huì)主動(dòng)斷開(kāi)與Client的連接,以騰出socket資源。Login Server的IP信息,是存放在QQGame\config\QQSvrInfo.ini里的。

  2.Client收到Login Server的校驗(yàn)成功等消息后,開(kāi)始根據(jù)事先選定的游戲大廳入口登錄游戲大廳,各個(gè)游戲大廳Game Hall Server的IP及Port信息,是存放在QQGame\Dirconfig.ini里的。Game Hall Server收到客戶端Client的登錄消息后,會(huì)根據(jù)一定的策略決定是否接受Client的登錄,如果當(dāng)前的Game Hall Server已經(jīng)到了上限或暫時(shí)不能處理當(dāng)前玩家登錄消息,則由Game Hall Server發(fā)消息給Client,以讓Client重定向到另外的Game Hall Server登錄。重定向的IP及端口信息,本地沒(méi)有保存,是通過(guò)數(shù)據(jù)包或一定的算法得到的。如果當(dāng)前的Game Hall Server接受了該玩家的登錄消息后,會(huì)向該Client發(fā)送房間目錄信息,這些信息的內(nèi)容我上面已經(jīng)提到。目錄等消息發(fā)送完畢后,Game Hall Server即斷開(kāi)與Client的連接,以騰出socket資源。在此后的時(shí)間里,Client每隔30分鐘會(huì)重新連接Game Hall Server并向其索要最新的房間目錄信息及在線人數(shù)信息。

  3.Client根據(jù)列出的房間列表,選擇某個(gè)房間進(jìn)入游戲。根據(jù)我的抓包結(jié)果分析,QQ游戲,并不是給每一個(gè)游戲房間都分配了一個(gè)單獨(dú)的端口 進(jìn)行處理。在QQ游戲里,有很多房間是共用的同一個(gè)IP和同一個(gè)端口。比如,在斗地主一區(qū),前50個(gè)房間,用的都是同一個(gè)IP和Port信息。這意味著, 這些房間,在QQ游戲的服務(wù)器上,事實(shí)上,可能是同一個(gè)程序在處理!!!QQ游戲房間的人數(shù)上限是400人,不難推算,QQ游戲單個(gè)服務(wù)器程序的用戶承載 量是2萬(wàn),即QQ的一個(gè)游戲邏輯服務(wù)器程序最多可同時(shí)與2萬(wàn)個(gè)玩家保持TCP連接并保證游戲效率和品質(zhì),更重要的是,這樣可以為騰訊省多少money 呀!!!哇哦!QQ確實(shí)很牛。以2萬(wàn)的在線數(shù)還能保持這么好的游戲品質(zhì),確實(shí)不容易!QQ游戲的單個(gè)服務(wù)器程序,管理的不再只是邏輯意義上的單個(gè)房間,而 可能是許多邏輯意義上的房間。其實(shí),對(duì)于服務(wù)器而言,它就是一個(gè)大區(qū)服務(wù)器或大區(qū)服務(wù)器的一部分,我們可以把它理解為一個(gè)龐大的游戲地圖,它實(shí)現(xiàn)的也是分 塊處理。而對(duì)于每一張桌子上的打牌邏輯,則是有一個(gè)統(tǒng)一的處理流程,50個(gè)房間的50*100張桌子全由這一個(gè)服務(wù)器程序進(jìn)行處理(我不知道QQ游戲的具 體打牌邏輯是如何設(shè)計(jì)的,我想很有可能也是分區(qū)域的,分塊的)。當(dāng)然,以上這些只是服務(wù)器作的事,針對(duì)于客戶端而言,客戶端只是在表現(xiàn)上,將一個(gè)個(gè)房間單 獨(dú)羅列了出來(lái),這樣作,是為便于玩家進(jìn)行游戲以及減少服務(wù)器的開(kāi)銷,把這個(gè)大區(qū)中的每400人放在一個(gè)集合內(nèi)進(jìn)行處理(比如聊天信息,“向400人廣播” 和“向2萬(wàn)人廣播”,這是完全不同的兩個(gè)概念)。

  4.需要特別說(shuō)明的一點(diǎn)。進(jìn)入QQ游戲房間后,直到點(diǎn)擊某個(gè)位置坐下打開(kāi)另一個(gè)程序界面,客戶端的程序,沒(méi)有再創(chuàng)建新的socket,而仍然使 用原來(lái)大廳房間客戶端跟游戲邏輯服務(wù)器交互用的socket。也就是說(shuō),這是兩個(gè)進(jìn)程共用的同一個(gè)socket!不要小看這一點(diǎn)。如果你在創(chuàng)建桌子客戶端 程序后又新建了一個(gè)新的socket與游戲邏輯服務(wù)器進(jìn)行通信,那么由此帶來(lái)的玩家進(jìn)入、退出、逃跑等消息會(huì)帶來(lái)非常麻煩的數(shù)據(jù)同步問(wèn)題,俺在剛開(kāi)始的時(shí) 候就深受其害。而一旦共用了同一個(gè)socket后,你如果退出桌子,服務(wù)器不涉及釋放socket的問(wèn)題,所以,這里就少了很多的數(shù)據(jù)同步問(wèn)題。關(guān)于多個(gè) 進(jìn)程如何共享同一個(gè)socket的問(wèn)題,請(qǐng)去google以下內(nèi)容:WSADuplicateSocket。

  以上便是我根據(jù)最新的QQ游戲抓包結(jié)果分析得到的QQ游戲的通信流程,當(dāng)然,這個(gè)流程更多的是客戶端如何與服務(wù)器之間交互的,卻沒(méi)有涉及到服務(wù)器彼此之間是如何通信和作數(shù)據(jù)同步的。關(guān)于服務(wù)器之間的通信流程,我們只能基于自己的經(jīng)驗(yàn)和猜想,得出以下想法:

  1.Login Server與Game Hall Server之前的通信問(wèn)題。Login Server是負(fù)責(zé)用戶驗(yàn)證的,一旦驗(yàn)證通過(guò)之后,它要設(shè)法讓Game Hall Server知道這個(gè)消息。它們之前實(shí)現(xiàn)信息交流的途徑,我想可能有這樣幾條:a. Login Server將通過(guò)驗(yàn)證的用戶存放到臨時(shí)數(shù)據(jù)庫(kù)中;b. Login Server將驗(yàn)證通過(guò)的用戶存放在內(nèi)存中,當(dāng)然,這個(gè)信息,應(yīng)該是全局可訪問(wèn)的,就是說(shuō)所有QQ的Game Hall Server都可以通過(guò)服務(wù)器之間的數(shù)據(jù)包通信去獲得這樣的信息。

  2.Game Hall Server的最新房間目錄信息的取得。這個(gè)信息,是全局的,也就是整個(gè)游戲中,只保留一個(gè)目錄。它的信息來(lái)源,可以由底層的房間服務(wù)器逐級(jí)報(bào)上來(lái),報(bào)給誰(shuí)?我認(rèn)為就如保存的全局登錄列表一樣,它報(bào)給保存全局登錄列表的那個(gè)服務(wù)器或數(shù)據(jù)庫(kù)。

  3.在QQ游戲中,同一類型的游戲,無(wú)法打開(kāi)兩上以上的游戲房間。這個(gè)信息的判定,可以根據(jù)全局信息來(lái)判定。

  以上關(guān)于服務(wù)器之間如何通信的內(nèi)容,均屬于個(gè)人猜想,QQ到底怎么作的,恐怕只有等大家中的某一位進(jìn)了騰訊之后才知道了。呵呵。不過(guò),有一點(diǎn)是 可以肯定的,在整個(gè)服務(wù)器架構(gòu)中,應(yīng)該有一個(gè)地方是專門(mén)保存了全局的登錄玩家列表,只有這樣才能保證玩家不會(huì)重復(fù)登錄以及進(jìn)入多個(gè)相同類型的房間。

  在前面的描述中,我曾經(jīng)提到過(guò)一個(gè)問(wèn)題:當(dāng)?shù)卿洰?dāng)前Game Hall Server不成功時(shí),QQ游戲服務(wù)器會(huì)選擇讓客戶端重定向到另位的服務(wù)器去登錄,事實(shí)上,QQ聊天服務(wù)器和MSN服務(wù)器的登錄也是類似的,它也存在登錄重定向問(wèn)題。

  那么,這就引出了另外的問(wèn)題,由誰(shuí)來(lái)作這個(gè)策略選擇?以及由誰(shuí)來(lái)提供這樣的選擇資源?這樣的處理,便是負(fù)責(zé)負(fù)載均衡的服務(wù)器的處理范圍了。由QQ游戲的通信過(guò)程分析派生出來(lái)的針對(duì)負(fù)責(zé)均衡及百萬(wàn)級(jí)在線系統(tǒng)的更進(jìn)一步討論,將在下篇文章中繼續(xù)。

  在此,特別感謝網(wǎng)友tilly及某位不便透露姓名的網(wǎng)友的討論,是你們讓我決定認(rèn)真再抓一次包探個(gè)究竟。

posted on 2009-09-23 23:43 暗夜教父 閱讀(671) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Game Development

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品一二三| 亚洲一区二区精品视频| 欧美日韩精品三区| 亚洲精品在线电影| 久久免费视频观看| 先锋亚洲精品| 欧美亚洲视频在线看网址| 国产精品99久久99久久久二8 | 国产一区亚洲| 国产日产欧产精品推荐色 | 亚洲国产精品一区二区久| 一区精品在线| 亚洲黄色免费| 亚洲一级网站| 久久久www成人免费精品| 老司机精品视频网站| 欧美丰满少妇xxxbbb| 亚洲精品在线免费| 一本色道久久99精品综合| 亚洲午夜一区二区三区| 亚欧美中日韩视频| 国产一区在线视频| 夜夜嗨av一区二区三区网页| 日韩视频一区二区三区在线播放| 亚洲午夜精品视频| 亚洲一区在线免费| 亚洲欧美激情一区| 亚洲欧美视频一区| 欧美一区二区在线观看| 老司机一区二区三区| 最新中文字幕亚洲| 暖暖成人免费视频| 亚洲日本在线观看| 在线综合亚洲欧美在线视频| 久久久亚洲国产天美传媒修理工 | 亚洲午夜精品久久久久久浪潮 | 91久久久久久| 亚洲免费网址| 欧美大片在线影院| 一本色道久久综合亚洲精品小说| 久久亚洲精品欧美| 国产精品都在这里| 伊甸园精品99久久久久久| 亚洲中午字幕| 亚洲黄网站在线观看| 久久成人人人人精品欧| 欧美日韩高清一区| 好看的av在线不卡观看| 亚洲影院在线| 亚洲精品社区| 欧美.www| 亚洲国产一区在线观看| 久久久999成人| 亚洲一区久久| 国产精品成人国产乱一区 | 亚洲视频一区在线观看| 另类春色校园亚洲| 99精品久久| 欧美激情一区三区| 黄色成人在线网站| 午夜精品久久久久久久久久久久久| 亚洲日韩视频| 欧美日韩国产二区| 影音先锋另类| 久久精品成人一区二区三区蜜臀| 一区二区毛片| 国产精品成人一区二区网站软件 | 亚洲成色777777女色窝| 欧美国产一区二区| 国产亚洲综合精品| 亚洲欧美中日韩| 亚洲婷婷国产精品电影人久久| 欧美性大战久久久久久久| 在线一区二区日韩| 最新国产乱人伦偷精品免费网站| 欧美精品免费看| 日韩一区二区福利| 亚洲福利精品| 欧美激情女人20p| 夜夜嗨av一区二区三区中文字幕 | 亚洲一二三区精品| 亚洲国产精品福利| 久色婷婷小香蕉久久| 91久久在线| 亚洲精品一二三| 国产精品久久毛片a| 欧美自拍偷拍午夜视频| 久久久久.com| a4yy欧美一区二区三区| 日韩午夜电影av| 国产精品美女久久久久久久| 久久久97精品| 欧美片第一页| 久久国产精彩视频| 久久精品国产免费| 一区二区亚洲精品| 麻豆精品网站| 欧美日韩精品免费| 亚洲视频在线一区| 亚洲网站在线播放| 国产日韩精品一区| 免费观看成人www动漫视频| 欧美精品一区二区三区蜜桃| 久久精品国产精品亚洲精品| 欧美精品久久一区二区| 欧美一区二区视频在线观看| 欧美大片一区二区三区| 香蕉乱码成人久久天堂爱免费| 牛人盗摄一区二区三区视频| 欧美在线播放高清精品| 欧美刺激午夜性久久久久久久| 欧美一区二区三区四区高清| 欧美国产三区| 久久久亚洲欧洲日产国码αv| 欧美日韩国产999| 久久综合色8888| 国产精品久久久久高潮| 欧美不卡高清| 国产欧美一区二区三区沐欲| 日韩网站免费观看| 一区二区亚洲精品国产| 亚洲淫性视频| 亚洲视频国产视频| 久久视频在线看| 久久国产欧美日韩精品| 欧美日韩一区二区三区在线| 欧美激情一区二区久久久| 久久精品一区二区三区中文字幕| 一区二区三区日韩欧美精品| 欧美成人免费全部观看天天性色| 嫩草影视亚洲| 伊人成人在线视频| 亚洲一二三区精品| 亚洲精品日韩一| 久久日韩粉嫩一区二区三区 | 亚洲欧美视频一区| 亚洲激情另类| 久久久久国产精品厨房| 久久精品夜色噜噜亚洲aⅴ| 国产精品igao视频网网址不卡日韩 | 国产一区二区三区视频在线观看| 亚洲一区亚洲二区| 日韩天堂在线观看| 久久久久国产精品人| 久久久久久自在自线| 国产视频亚洲精品| 中文国产成人精品久久一| 亚洲小说春色综合另类电影| 国产精品久久一级| 中日韩男男gay无套| 午夜精品久久久久久久久久久久| 国产亚洲成年网址在线观看| 久久久国产成人精品| 久久人人爽国产| 狠狠色狠狠色综合日日小说| 蜜乳av另类精品一区二区| 欧美激情1区2区| 99视频在线观看一区三区| 欧美日韩一视频区二区| 亚洲午夜在线| 麻豆精品一区二区av白丝在线| 亚洲欧洲偷拍精品| 欧美成人一区二免费视频软件| 99国产精品久久久久老师| 午夜精品福利在线观看| 国产一区二区三区日韩欧美| 美国十次成人| 亚洲美女av在线播放| 午夜精品视频在线观看| 狠狠干成人综合网| 久热精品视频在线观看一区| 一区二区三区波多野结衣在线观看| 久久精品国产96久久久香蕉| 亚洲久久视频| 国产欧美精品| 欧美国产精品va在线观看| 一本色道久久综合精品竹菊 | 国产日韩视频一区二区三区| 久久影院午夜论| 日韩亚洲在线观看| 亚洲一区在线免费| 国产人成精品一区二区三| 免费成年人欧美视频| 中文在线资源观看视频网站免费不卡| 久久久久久一区二区| 中文网丁香综合网| 国产精品免费观看在线| 久久婷婷色综合| 国产精品99久久久久久久女警| 欧美成年人在线观看| 亚洲欧美日韩国产中文| 亚洲成人在线| 久久精品国产亚洲精品| 亚洲第一主播视频| 亚洲网站在线观看| 国产日韩在线一区| 麻豆精品在线观看| 亚洲视频免费在线| 欧美成人精品在线| 午夜精品久久久久久久久|