• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Sheppard Y

            keep thinking keep coding.

            休閑手游服務器集群擴展思考

            2016-07-11 日更新 
            此篇博客已經遷移到新博客,并做行文檢查和優化排版:
            http://blog.clawz.me/2013/09/30/13-mobile-game-cluster-design/

             


            一、目標

                能橫向擴展,架構要簡單,能做到負載均衡,避免單節點負載太輕的資源浪費。

             

            二、數據存儲的DB集群

                ​數據存儲類型有多種。

            (一)非交互性的個人數據

                ​可通過簡單的id分段。id為1~10000的玩家個人數據存儲在db1,id為10001~20000的玩家個人數據存儲在db2,以此類推。

             

            (二)交互性數據

                ​如好友關系等。

            (1)如果好友關系可以為單向,那么可以將關系存到個人數據里。

            (2)如果好友關系不能為單向,那么需要保證每條關系保持在要么沒有,要么兩人都認同,記數據上一直,互相有關系。那么需要保證相關的關系操作的一致性。這樣可能只保存一份每兩個人之間的關系,k-v存儲時需要方向查找,不知是否能實現。

             

            (三)全局數據

                ​如全局排行榜之類的。這種放在單獨的庫里里,專門做全局數據的存儲。當到一定規模時,按全局數據的類型再分庫。

                ​家族、幫會等,也放單獨的庫里。如果需要擴展,再按家族id、幫會id來分庫。

             

            三、邏輯服務器集群對DB集群的訪問

                ​DB集群的路由規則配置到邏輯服務器的config里。當需要熱擴展DB時,啟動新DB后,給各logic服務器發送GM指定,reload路由規則的config。

                ​DB集群路由規則的config,可以放在一個公共地方,各logic服務器接到GM指令后,去公共地方拉取新的config然會reload。

             

            四、邏輯服務器集群

                ​為了架構的簡單,可以每個邏輯服務器進程上都有所有邏輯,擴展時,以擴展邏輯服務器進程數量來達到。

            (一)各邏輯服務器上玩家分配

                ​邏輯服務器集群之間的交互。如果邏輯服務器的使用,也像個人數據存儲的DB那樣id分段——只讓1~10000的玩家登陸logic1,10001~20000的玩家登陸logic2時,這很簡單,但各id斷的玩家活躍度不定的,做不到負載均衡啊。

                ​所以是根據當時的負載情況,來推薦玩家登陸閑的邏輯服務器的。這樣需要有個全局映射,知道哪個玩家登陸在哪個服務器上。可以將玩家當前所在的服務器id記錄在該玩家的個人數據所在的db里。

            (二)邏輯服務器間的通信

                ​目前項目持久化使用redis,最快出東西,就先考慮redis的優勢。

                ​邏輯服務器間的通信,通過全局數據存儲的redis來做pub/sub轉發吧。

                ​redis的pub和sub的實時性不夠時,​將有實時性需求的玩家都轉到一個專門做強實時性的特殊邏輯服務器。

             

            五、PS

                ​公司的項目是Node.js+Redis,業余時間打算用Go寫個服務器引擎。

                ​這篇考慮發到精華區,可以得到很多的批評建議。

            posted on 2013-09-30 10:46 Sheppard Y 閱讀(2478) 評論(2)  編輯 收藏 引用 所屬分類: 設計架構

            評論

            # re: 休閑手游服務器集群擴展思考 2013-10-07 21:40 Kevin Lynx

            期待發出更多的經驗。  回復  更多評論   

            # re: 休閑手游服務器集群擴展思考 2013-10-09 09:14 zuhd

            redis+go 好高端啊  回復  更多評論   

            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            導航

            統計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            中文字幕亚洲综合久久| 麻豆av久久av盛宴av| 国产精品嫩草影院久久| 色天使久久综合网天天| 欧美黑人又粗又大久久久| 99久久久精品| 亚洲色欲久久久综合网东京热| 久久精品国产亚洲av麻豆色欲| 久久久WWW成人免费毛片| 日韩久久久久久中文人妻 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 狠狠色丁香久久婷婷综合蜜芽五月| 香蕉久久av一区二区三区| 亚洲国产精品久久| 麻豆AV一区二区三区久久 | av午夜福利一片免费看久久| 亚洲国产精品综合久久网络| 久久精品免费一区二区三区| 欧美伊人久久大香线蕉综合| 久久久精品视频免费观看| 久久精品视频网| 久久av无码专区亚洲av桃花岛| 亚州日韩精品专区久久久| 亚洲午夜久久久精品影院| 久久久久亚洲av无码专区| 亚洲国产日韩欧美久久| 久久精品国产精品亚洲艾草网美妙| 996久久国产精品线观看| 少妇人妻88久久中文字幕| 久久99九九国产免费看小说| 久久久久久久综合综合狠狠| 国产成人久久久精品二区三区| 久久99国产亚洲高清观看首页 | 91视频国产91久久久| 久久99久久99精品免视看动漫| 一本久久知道综合久久| 77777亚洲午夜久久多人| 久久无码AV中文出轨人妻| 久久亚洲熟女cc98cm| 久久久www免费人成精品| 久久久久久久综合狠狠综合|