淺談伺服器架構之MMORPG端遊
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<————
MallServer<————>SceneServer,StorageServer
RankServer<————> SceneServer,StorageServer
這裡主要說一些SceneServer的一些具體的設計:
1,如果有角色比較集中的地圖的話,單獨配置到一個SceneServer,比如主城;其他訪問量不大的可以配置到一起。
2,副本地圖單獨配置SceneServer,這裡可以根據玩家實際建立副本的量與單個程序承載量來配置程序數量。
3,邏輯單執行緒,也是主要的執行緒;另外網路訊息的處理單獨執行緒,Log也單獨一個執行緒來處理
另外該配置也可以根據具體需求來相應的調整。