本文主要探討如何設計一款百萬人同時在線的棋牌類網絡游戲服務器系統,如果您發現本文的設計上存在漏洞或不對的地方歡迎提出共同探討。
1.總體架構圖
注: CMS(control and manage server) : 控制管理服務器. GateServer : 門服務器
2.相關服務器介紹
注:除CMS外每臺服務器都由兩個程序實例構成,服務器管理客戶端和服務器程序。
2.1 控制管理服務器(CMS)
CMS的作用是管理和配置所有的服務器。主備賬號服務器、主備GATE服務器的切換也是由CMS決定的,服務器管理員通過CMS來管理所有的服務器。
2.2 賬號服務器
賬號服務器的主要用于處理用戶注冊和登錄游戲系統。用戶是否重復登錄游戲也將在賬號服務器上處理。賬號服務器由主備構成,任何時候只有主賬號服務器負責和客戶端及GATE服務器交互;備用賬號服務器主要處理CMS發來的控制消息及主賬號服務器發來的實時數據備份消息,及其他服務器發來的心跳消息。
2.3 門服務器(GateServer)
門服務器的作用是負責各服務器之間的消息轉發,確定用戶的資料在哪臺數據庫服務器上。門服務器也分為主用和備用兩臺,除CMS外的其他服務器只和主用的門服務器交互。當CMS發現主用門服務器故障時將通知其他服務器進行主備切換。
2.4 大廳服務器
當用戶登錄成功后將和大廳服務器保持長連接以實時獲取游戲系統的信息。
2.5 游戲服務器
當用戶在大廳中點擊進入某個游戲時,用戶將登錄相應的游戲服務器進行游戲。
2.6 數據庫服務器
數據庫服務器主要保存用戶的資料和用戶的游戲數據。
2.7 消息服務器
主要負責用戶聊天消息的處理。
3.流程介紹
3.1 系統啟動流程

如圖所示,系統最先啟動的是CMS,當CMS啟動之后將從本地數據庫讀取相關服務器配置信息,只有本地配置中存在的服務器才可以連接本系統正常工作;這樣就可以保證只有合法的服務器才能連接到本系統以防止非法服務器的接入。當門服務器啟動并連接CMS后CMS將選擇其中一個作為主用門服務器。接下來依次啟動的是數據庫服務器,大廳服務器,游戲服務器,消息服務器。最后啟動的是賬號服務器。
3.2 添加一臺新服務器流程

3.3 用戶登錄流程
