論百萬人同時在線棋牌類網(wǎng)絡(luò)游戲服務(wù)器設(shè)計
本文主要探討如何設(shè)計一款百萬人同時在線的棋牌類網(wǎng)絡(luò)游戲服務(wù)器系統(tǒng),如果您發(fā)現(xiàn)本文的設(shè)計上存在漏洞或不對的地方歡迎提出共同探討。
1.總體架構(gòu)圖
注: CMS(control and manage server) : 控制管理服務(wù)器. GateServer : 門服務(wù)器
2.相關(guān)服務(wù)器介紹
注:除CMS外每臺服務(wù)器都由兩個程序?qū)嵗龢?gòu)成,服務(wù)器管理客戶端和服務(wù)器程序。
2.1 控制管理服務(wù)器(CMS)
CMS的作用是管理和配置所有的服務(wù)器。主備賬號服務(wù)器、主備GATE服務(wù)器的切換也是由CMS決定的,服務(wù)器管理員通過CMS來管理所有的服務(wù)器。
2.2 賬號服務(wù)器
賬號服務(wù)器的主要用于處理用戶注冊和登錄游戲系統(tǒng)。用戶是否重復(fù)登錄游戲也將在賬號服務(wù)器上處理。賬號服務(wù)器由主備構(gòu)成,任何時候只有主賬號服務(wù)器負(fù)責(zé)和客戶端及GATE服務(wù)器交互;備用賬號服務(wù)器主要處理CMS發(fā)來的控制消息及主賬號服務(wù)器發(fā)來的實時數(shù)據(jù)備份消息,及其他服務(wù)器發(fā)來的心跳消息。
2.3 門服務(wù)器(GateServer)
門服務(wù)器的作用是負(fù)責(zé)各服務(wù)器之間的消息轉(zhuǎn)發(fā),確定用戶的資料在哪臺數(shù)據(jù)庫服務(wù)器上。門服務(wù)器也分為主用和備用兩臺,除CMS外的其他服務(wù)器只和主用的門服務(wù)器交互。當(dāng)CMS發(fā)現(xiàn)主用門服務(wù)器故障時將通知其他服務(wù)器進行主備切換。
2.4 大廳服務(wù)器
當(dāng)用戶登錄成功后將和大廳服務(wù)器保持長連接以實時獲取游戲系統(tǒng)的信息。
2.5 游戲服務(wù)器
當(dāng)用戶在大廳中點擊進入某個游戲時,用戶將登錄相應(yīng)的游戲服務(wù)器進行游戲。
2.6 數(shù)據(jù)庫服務(wù)器
數(shù)據(jù)庫服務(wù)器主要保存用戶的資料和用戶的游戲數(shù)據(jù)。
2.7 消息服務(wù)器
主要負(fù)責(zé)用戶聊天消息的處理。
3.流程介紹
3.1 系統(tǒng)啟動流程
如圖所示,系統(tǒng)最先啟動的是CMS,當(dāng)CMS啟動之后將從本地數(shù)據(jù)庫讀取相關(guān)服務(wù)器配置信息,只有本地配置中存在的服務(wù)器才可以連接本系統(tǒng)正常工作;這樣就可以保證只有合法的服務(wù)器才能連接到本系統(tǒng)以防止非法服務(wù)器的接入。當(dāng)門服務(wù)器啟動并連接CMS后CMS將選擇其中一個作為主用門服務(wù)器。接下來依次啟動的是數(shù)據(jù)庫服務(wù)器,大廳服務(wù)器,游戲服務(wù)器,消息服務(wù)器。最后啟動的是賬號服務(wù)器。
3.2 添加一臺新服務(wù)器流程
3.3 用戶登錄流程
來自:http://www.cppblog.com/beifangying/archive/2008/09/11/61600.html