作為一個網絡游戲,雖然目前游戲內的許多設定我們還在補充,我們拋開江湖X的游戲業(yè)務層面的設計,純介紹一下江湖X的服務器技術框架。
先簡單介紹一下幾個核心技術點:
- 江湖X是一個基于長連接的網絡游戲
- 江湖X運維托管依賴于公有云環(huán)境,當然,也可以獨立部署
- 江湖X支持一部分非核心代碼的熱更新
- 江湖X的設計目標為同服容納同時在線數千玩家,容納百萬級玩家信息
- 能做到10秒級的全服/單個賬號精確回檔
再說一下開發(fā)基礎和選型原因:
我們工作室人丁稀少,而且也非純技術向定位(我們都一起做策劃、運營、運維甚至是美工、音樂啦)……之前也沒有游戲行業(yè)的代碼積累,所以我們大部分東東能用開源的就用,能用付費的也用。一切的核心為的是提高生產效率、降低工作量、并且提高運維穩(wěn)定性,當然,也在一定程度上考慮了未來的可擴展性。
下面直接上系統(tǒng)架構圖
20160915125200469.PNG
解釋:
- 賬號服務器是全局唯一的,一個賬號可以登錄我們所有的游戲服務器。主要賬號登錄信息、支付信息、賬號登錄TOKEN(判斷同一賬號是否重復登錄),采用J2EE開發(fā)
- 游戲服務器使用SCUT編寫,與客戶端之間通信采用socket長連接,使用C#開發(fā)
- 數據庫使用的redis+mysql,所有登錄激活的賬號才會進入redis,否則數據序列化存在持久化存儲里。
- 數據庫使用公有云提供的高可用方案,秒級落盤。所以可以做到秒級回檔。
- WEB服務器掛接了CDN,提供游戲下載、各種活動頁面、服務器列表、公告發(fā)布等等
- 聊天、統(tǒng)計和第三方登錄/支付、短信服務 均屬于外部系統(tǒng),直接使用的云服務。
- 客服/GM系統(tǒng)是我們管理員的操作后臺,采用PHP編寫
- 公有云我們目前使用阿里云和UCLOUD
- 聊天服務器使用親加云通訊
- 第三方登錄/支付包括 支付寶、微信、蘋果等
- 短信服務使用的容聯(lián)云通訊
- 統(tǒng)計服務使用的友盟
- 賬號服務器、數據庫等均外網隔離
- 游戲服務器、WEB服務器等均使用云服務器提供的防火墻,并且做了一系列的安全方案
根據測試情況和目前的運營情況,若干結論性的東東分享:
- SCUT服務端還算穩(wěn)定,可用。代碼沒問題的情況下,同一個實例支持幾千并發(fā)應該比較輕松。
- redis很強大,但是要注意控制其內存
- 阿里云服務器的磁盤讀寫性能很差
- CDN未必可靠,需要程序支持備份切換方案
- 目前的公有云環(huán)境確實是高可用,基本沒有出過什么問題
我接下來的文章將深入到具體的每個模塊和邏輯討論技術細節(jié),有興趣的同學歡迎與我交流。