架構設計-網關服務器

對比下面這兩種架構設計的區別。
這裏寫圖片描述

這裏寫圖片描述
下面這種使用網關服務器的架構設計的優點在哪呢?

借用知乎王明雨知友的一個比喻:

把服務器想象成飯店,沒有網關服務器的情況,就如同每一個廚師服務一桌顧客,從點菜開始到炒菜到上菜到收銀,有n個廚師就只能服務n桌顧客。有了網關服務器的話,網關服務器就成了強大的服務員,把招呼,點菜、上菜和收銀的活都做了,廚師只需要專心炒菜就行。這樣飯店的效率就大大提高了。
這樣可以把要承載高併發,高性能任務的網絡服務獨立出來專門做好,做強(對於http協議的場景,可以直接用nginx做網關服務器)。這樣各個應用只需把重點放在對業務邏輯的處理即可。從技術架構和項目協作上都做到了解耦。

增強了系統的健壯性,一個應用出現故障並不會對其他應用產生影響。後期運維也好做灰度更迭。

有應用集羣的情況下,可以通過網關服務器做負載均衡,把請求分發在負載低的服務器上。

再引用一個遊戲公司對網關服務器的評價:

服務器架構

採用帶網關的服務器架構,將客戶端與遊戲服務器隔離,相比傳統的客戶端-服務端直連的架構有如下優勢:

(1)作爲網絡通信的中轉站,負責維護將內網和外網隔離開,使外部無法直接訪問內部服務器,保障內網服務器的安全,一定程度上減少外掛的攻擊。

(2)網關服務器負責解析數據包、加解密、超時處理和一定邏輯處理,這樣可以提前過濾掉錯誤包和非法數據包。

(3)客戶端程序只需建立與網關服務器的連接即可進入遊戲,無需與其它遊戲服務器同時建立多條連接,節省了客戶端和服務器程序的網絡資源開銷。

服務端高度模塊化

大廳服務端將登錄、用戶信息、房間信息、日常任務、道具、銀行、比賽、排行、活動、網站等11個功能拆分成11個獨立的服務端子模塊,模塊之間不會相互影響,即使某模塊出錯也不會影響全局,提高了服務端的穩定性;與子模塊平行的新功能可以自由新增掛載,擴展性強。

參考來源:
網關服務器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章