1. 程式人生 > >服務器架構之大廳

服務器架構之大廳

TP 通過 enter 數據庫 技術分享 數量 gin http 分享

大廳就是一個房間的入口。對於遊戲服務器來說就是一個用戶進入遊戲的入口。他的主要功能一般有

  • 登陸,註冊,
  • 網關選擇,
  • 用戶身份驗證,
  • 版本管理,
  • 區列表管理。
  • 公告顯示等。

從架構上來說,大約如下圖:

技術分享圖片

大廳是為了遊戲後面的內容服務器的。所以有些通用的功能會在這裏實現。為了增加效率,登陸之後的用戶信息可以在這裏進行緩存。以增加處理登陸的效率。用戶登陸之後,會在這裏生成token,用於網關的驗證。流量限制是為了防止請求過多對服務器造成過大的壓力,比如限制一分鐘這內最多五千次訪問等。如果遊戲是分區的,這裏還要返回區列表。

另外一個主要的功能是網關的選擇。估且叫網關管理模塊吧。它負責統計網關的連接數量,對網關的連接進行負載均衡。最好是同一個用戶id都會返回同一個網關的ip,比如使用id求余法。為了動態調整不同網關的負載量,可以給每個參與選擇的網關配置一個權重。負載小的網關權重可以高一點。當然,大多數量的遊戲一個網關就足夠了,這樣設計一般是為了擴展性。

大廳一般使用短連接開發,因為大廳不需要和客戶端長期交互,執行完相應的功能之後就不再聯系了。所以大廳一般是一個web服務。和客戶端使用http協議交互。這樣的好處是可以利用很多現成的web框架比如開發框架springmvc,負載工具nginx,加快開發速度。此服務和數據庫的交互不直接操作數據庫,而是通過rpc,請求數據服務(Dao服務)。這樣方便對數據庫的管理,以及以後的分庫分表。

版本管理主要是對客戶端的版本進行驗證,判斷客戶端的請求版本是否是當前服務器支持的版本。


QQ群交流:66728073,更多文章:http://www.coc88.com;公眾號:

技術分享圖片

服務器架構之大廳