服務器架構之大廳

 

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

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

從架構上來講,大約以下圖:web

 

 

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

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

大廳通常使用短鏈接開發,由於大廳不須要和客戶端長期交互,執行完相應的功能以後就再也不聯繫了。因此大廳通常是一個web服務。和客戶端使用http協議交互。這樣的好處是能夠利用不少現成的web框架好比開發框架springmvc,負載工具nginx,加快開發速度。此服務和數據庫的交互不直接操做數據庫,而是經過rpc,請求數據服務(Dao服務)。這樣方便對數據庫的管理,以及之後的分庫分表。緩存

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

 


QQ羣交流:66728073,更多文章:http://www.coc88.com;公衆號:架構

相關文章
相關標籤/搜索