一個大區萬人同時在線的遊戲服務端架構設計(偏重休閒類的遊戲)

 在不考慮擴充一個大區1萬人以上時,如下兩個架構都可實現,不過萬人以上時,服務器壓力成指數上漲,暫不考慮單點故障問題。

        架構一:
        
         圖片
        這個架構的優勢,節點清晰,全部跨線消息都經過world server來進行路由,game server負責部分邏輯以及抗IO壓力,logic server用來處理跨線交互的遊戲邏輯, game之間互相不知道彼此的存在因此 能夠動態擴充服務器,剛開服人沒那麼多時,能夠上單臺game server,單臺logic server,隨着人數增長一直能夠擴充到萬人。

        缺點,world server單線程路由消息壓力較大,需每秒能夠轉發1到2萬次以上消息量,萬人在線纔可流暢遊戲,不過能夠經過遊戲邏輯劃分服務器,減輕world server的壓力。


        架構二:
        圖片
        這個架構的優勢,不須要world server進行消息的路由,不須要獨立的跨線logic server,全部的game server網狀交互,都可互相通訊,這裏由login server來抗IO的壓力。

        缺點,game server網狀交互不利於擴展,每多一個game server鏈接數就是game server數 ^ 2,在啓動時須要互相知道彼此的存在

算法

        不過上述兩種架構均可以應對萬人在線的需求,第一種更考驗編程能力,遊戲的邏輯算法優化的要好,只有讓world server的處理能力更強,才能支持更多的人在線,第二種考驗的是跨線交互比較繁瑣,每一個game server都要緩存一份當前在線玩家的Onli,數據同步也要處理好。 編程

        目前我所作的遊戲中採用了第一種架構,目前來看萬人同區的問題不算太大,由於遊戲的偏重於休閒,因此消息量沒有傳統MMO那樣的大,只能說這個架構符合如今的需求。具體的遊戲還要具體在設計架構,我秉承的原則就是沒有最牛的技術,只有最適合的技術。 緩存

相關文章
相關標籤/搜索