網(wǎng)絡(luò)游戲服務(wù)器開發(fā)雜記---區(qū)服管理

0x00 分區(qū)的概念

經(jīng)常玩游戲的朋友都知道,下載完游戲届搁,注冊(cè)完賬號(hào),就要進(jìn)入選擇區(qū)服了,比如以前雙線機(jī)房還不普及的年代卡睦,會(huì)看到電信1區(qū)宴胧,電信2區(qū)。現(xiàn)在的游戲都是雙網(wǎng)環(huán)境了表锻,常見的分區(qū)如手Q1區(qū)恕齐,微信1區(qū)等。


wow

0x01 分區(qū)服務(wù)器的設(shè)計(jì)

先來解決第一個(gè)問題瞬逊,這些區(qū)服的列表信息如何獲取显歧。一般的解決方案就是使用http請(qǐng)求來返回json數(shù)據(jù),我們稱這個(gè)服務(wù)器為索引服務(wù)器确镊,這個(gè)索引服務(wù)器可以做成多點(diǎn)負(fù)載均衡士骤,返回的json數(shù)據(jù)可以通過配置或是數(shù)據(jù)庫(kù)文件來完成,它是能滿足熱跟新和多點(diǎn)容災(zāi)切換的蕾域,簡(jiǎn)單的說它就是一個(gè)微服務(wù)拷肌。設(shè)計(jì)如下圖。


WebSever

0x02 區(qū)服服務(wù)器的連接信息

每一個(gè)區(qū)服背后會(huì)關(guān)聯(lián)1個(gè)或是多個(gè)網(wǎng)關(guān)服務(wù)器旨巷,這些網(wǎng)關(guān)服務(wù)器會(huì)和賬號(hào)中心AccountServer保持連接巨缘,同時(shí)也會(huì)和服務(wù)器監(jiān)控中心CenterServer保持連接。AccountServer做的功能非常的簡(jiǎn)單專一采呐,就是對(duì)客戶端發(fā)過來的username和md5(password)做匹配校驗(yàn)若锁,并把校驗(yàn)后的結(jié)果返回給GateServer,再由GateServer返回給玩家斧吐。當(dāng)玩家的用戶校驗(yàn)成功的情況下又固,GateServer還會(huì)通知CenterServer,當(dāng)前的玩家的賬號(hào)驗(yàn)證通過会通,并且讓CenterServer按照一定的算法生成一個(gè)動(dòng)態(tài)的Token保存下來口予,并且把該Token發(fā)給客戶端保存下來,做為每次切換服務(wù)器的憑證涕侈,在玩家下線之后該Token失效沪停,下次上線的時(shí)候重新生成。同時(shí)CenterServer還兼任著管理賬號(hào)狀態(tài)的功能裳涛,比如該賬號(hào)是否有異常等木张。簡(jiǎn)單的講,就是客戶端每次在網(wǎng)關(guān)發(fā)起切換場(chǎng)景的時(shí)候端三,如果發(fā)生了切換進(jìn)程行為舷礼,都必須要攜帶Token進(jìn)行二次驗(yàn)證。這樣做的目的是什么呢郊闯,我們假設(shè)這樣一個(gè)場(chǎng)景妻献,當(dāng)玩家停留在角色選擇界面蛛株,沒有進(jìn)入到一個(gè)具體的場(chǎng)景,同時(shí)通訊協(xié)議被破解了育拨,而且沒有Token校驗(yàn)谨履,那外掛就很容易繞過登陸直接登陸場(chǎng)景了。


服務(wù)器

大區(qū)分好了熬丧,那里面的服又是怎么劃分的呢笋粟?我們現(xiàn)在通常看到的大區(qū)里面通常都是一組服務(wù)器析蝴,也就是說該區(qū)只劃分了一個(gè)游戲世界害捕。這里所說的游戲世界,就是一個(gè)賬號(hào)的角色所產(chǎn)生的所有數(shù)據(jù)闷畸。這樣說起來可能還是有點(diǎn)繞口尝盼,簡(jiǎn)單概括就是當(dāng)前的流行的微信1區(qū),其實(shí)這個(gè)1區(qū)就只有1個(gè)游戲世界腾啥,因?yàn)樗麄儾]有做多服的分配东涡,如果按照大型游戲的做法,1區(qū)內(nèi)還是可以劃分為1服倘待,2服的疮跑,當(dāng)然1服和2服加起來就是1個(gè)區(qū)下面有2個(gè)游戲世界了。

0x03 內(nèi)部服務(wù)器構(gòu)成

那1個(gè)游戲世界里又有哪些服務(wù)器呢凸舵,這個(gè)要看游戲的類型和復(fù)雜程度了祖娘,通常的做法是劃分為網(wǎng)關(guān)服務(wù)器GateServer,游戲服務(wù)器GameServer啊奄,地圖管理器MapServer渐苏,日志服務(wù)器LogServer,數(shù)據(jù)庫(kù)代理DBProxy菇夸,關(guān)系服務(wù)器RelationServer琼富,充值服務(wù)器BillingServer,當(dāng)然也有做的更加細(xì)分的庄新,如戰(zhàn)斗服務(wù)器BattleServer鞠眉,角色信息服務(wù)器InfoServer等等。這些可以根據(jù)架構(gòu)師的經(jīng)驗(yàn)和對(duì)項(xiàng)目的運(yùn)營(yíng)周期評(píng)估做出合理的剪裁择诈,沒有最好的架構(gòu)械蹋,只有最適合自己的。

總結(jié)一下羞芍,今天講的區(qū)服管理是進(jìn)入游戲前的第一步哗戈,它的邏輯簡(jiǎn)單容易理解,接下來的計(jì)劃就是模擬正常玩家的游戲生命周期來逐個(gè)環(huán)節(jié)的分析荷科,遇到重點(diǎn)的模塊會(huì)單獨(dú)的花點(diǎn)時(shí)間分析唯咬,比如任務(wù)纱注,戰(zhàn)場(chǎng),副本等胆胰。下一個(gè)章節(jié)我們講解賬號(hào)和角色管理奈附。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市煮剧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌将鸵,老刑警劉巖勉盅,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異顶掉,居然都是意外死亡草娜,警方通過查閱死者的電腦和手機(jī)矾睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門盐须,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人郊霎,你說我怎么就攤上這事簿透∫婆郏” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵老充,是天一觀的道長(zhǎng)葡盗。 經(jīng)常有香客問我,道長(zhǎng)啡浊,這世上最難降的妖魔是什么觅够? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮巷嚣,結(jié)果婚禮上喘先,老公的妹妹穿的比我還像新娘。我一直安慰自己廷粒,他們只是感情好窘拯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著评雌,像睡著了一般树枫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上景东,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天砂轻,我揣著相機(jī)與錄音,去河邊找鬼斤吐。 笑死搔涝,一個(gè)胖子當(dāng)著我的面吹牛厨喂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庄呈,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼蜕煌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了诬留?” 一聲冷哼從身側(cè)響起斜纪,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎文兑,沒想到半個(gè)月后盒刚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绿贞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年因块,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片籍铁。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涡上,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拒名,到底是詐尸還是另有隱情吩愧,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布增显,位于F島的核電站耻警,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏甸怕。R本人自食惡果不足惜甘穿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梢杭。 院中可真熱鬧温兼,春花似錦、人聲如沸武契。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咒唆。三九已至届垫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間全释,已是汗流浹背装处。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浸船,地道東北人妄迁。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓寝蹈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親登淘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箫老,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353