淺析國內某種端遊伺服器架構
做伺服器開發兩年了,也沒學到太多的東西,更多的應該是處理問題的思路。而思路決定你如何處理問題,我覺得這個很關鍵,比你噼裡啪啦的打了一通程式碼要好一些。
現在逐漸從遊戲伺服器的邏輯層轉到了稍微深層次一點的內容了,比如伺服器架構,伺服器AOI,網路底層,一些庫等等,所以也慢慢的與大家分享交流下心得,免得閉門造車。
國內的遊戲大多架構都很適合國情,走馬觀花地看了一些伺服器的架構,覺得設計都比較近似,今天我們先說一種伺服器的架構,如下圖:(點選檢視大圖,或者下載到本地檢視)
上圖是一組伺服器的分佈圖, 這種伺服器架構比較適合多個單獨伺服器(國家/陣營)。它提供了跨服,中轉,單服動態均衡等比較常見的功能。
1.CenterServer負責整個伺服器總控,提供伺服器之間跳轉,RMB到遊戲幣等功能
2.LoginServer提供登陸服務
3.GateServer提供客戶端和伺服器之間的訊息轉發
4.GameServer提供遊戲內邏輯處理,場景,怪物,NPC等一系列功能
5.CharServer類似於與GameServer,不過邏輯單一,只處理獲得角色,選取角色,進入不同的遊戲世界GameServer
6.DBServer提供資料儲存服務
7.Platform提供充值、賬號、web、伺服器監控、充值等服務
8.PF_DBServer提供Platform的資料儲存服務
這種伺服器架構好處就是跳轉方便,多個GateServer均衡了訊息轉發的壓力,並且CenterServer可以整體控制。缺點是每個GameServer是單獨的,GameServer之間不能做到均衡,如果是多個國家/勢力/陣營,那正好一個伺服器一個國家/勢力/陣營,但是如果是PVE休閒類的遊戲,其實沒有玩家的陣營之分的話,如果玩家數量較多,就會導致某個伺服器壓力過大,解決辦法可以使用BW的伺服器之間動態均衡負載的辦法。