MMORPG,是英文Massive(或Massively)Multiplayer Online Role-PlayingGame的縮寫。一般指大型多人在線角色扮演游戲。
這里突出的需求就是多人在線,也就是需要一個大區可以有比較大的承載能力。
所以這里采用的是采用一個可配置可靈活增減容量的多服架構。
客戶端:用戶機器安裝的游戲端,以下簡稱Client。
網關服務器:負責接受客戶端的連接,對消息進行前置處理(加密,解密,驗證等),然后將消息分發;因為需要對應的是大量的客戶端連接,為了保證連接的品質,這里采用的是一個對等的服務器組,以下簡稱GateServer。
中心服務器:載入的是全區所有玩家的數據,也是整個服務器架構的中心,全區玩家之前交互的核心,以下簡稱CentralServer。
登錄服務器:負責用戶的登錄驗證,登錄可能經常遇到一個峰值的處理,所以這里需要增加一個可配置的登錄等待隊列,以下簡稱LoginServer。
邏輯服務器:游戲中所有邏輯的處理,也就是服務器壓力的所在,這里采用的是一個可配置的服務器組,是根據游戲中場景來加載的,以下簡稱SceneServer。
存儲服務器:主要負責從Database加載角色數據,以及存儲加色數據,以下簡稱StorageServer。
郵件服務器:對應的主要是游戲中的郵件系統,這里可能有一個很頻繁的收發讀取郵件的操作,所有單獨出一個進程來處理,以下簡稱MallServer。
排名服務器:處理游戲的排行榜,這里可能包括以前需要處理排名的系統功能,以下簡稱RankServer。
名字服務器:由於整個游戲中采用的名字不唯一,所以專門架設一個名字服務器,對多區的名字唯一性進行驗證;以及接入各平台時名字屏蔽字的處理和過濾,以下簡稱NameServer。
GM服務器:游戲運營后台處理工具,負責處理一些運營相關的需求,以下簡稱GmServer。
以下為各服務器內部之間的連接關系:
GateServer<————> CentralServer,SceneServer
CentralServer<————> GateServer,SceneServer ,LoginServer,StorageServer
SceneServer<————> GateServer, CentralServer ,NameServer,GmServer,MallServer,RankServer,StorageServer
MallServer<————> SceneServer,StorageServer
RankServer<————> SceneServer,StorageServer
這里主要說一些SceneServer的一些具體的設計:
1,如果有角色比較集中的地圖的話,單獨配置到一個SceneServer,比如主城;其他訪問量不大的可以配置到一起。
2,副本地圖單獨配置SceneServer,這里可以根據玩家實際創建副本的量與單個進程承載量來配置進程數量。
3,邏輯單線程,也是主要的線程;另外網絡消息的處理單獨線程,Log也單獨一個線程來處理
另外該配置也可以根據具體需求來相應的調整。