• <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>

            concentrate on c/c++ related technology

            plan,refactor,daily-build, self-discipline,

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(9)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            游戲服務(wù)器框架設(shè)計

            Ø  序言

            人們在認(rèn)識事物的時候,一般都是先從大致的骨架開始,然后再到具體的細(xì)節(jié),金字塔原理中用的比較多的就是自上而下的分析方法,這個方法放在放之四海而皆準(zhǔn)。那么回到我們游戲服務(wù)器開發(fā)上面,也是如此。那么如何設(shè)計和選擇服務(wù)器架構(gòu)以及有啥需要注意的呢? 這是本文章要解決的問題。

            文章主要目標(biāo)人群是,對服務(wù)器框架設(shè)計感興趣,有從事過游戲框架設(shè)計的同學(xué)。

            文章內(nèi)容,介紹五大設(shè)計原則以及給出兩個示例,最后做總結(jié)。

            Ø  設(shè)計原則

            設(shè)計原則其實也是在設(shè)計時需要考慮的因素,過度設(shè)計是加重工作量的元兇,設(shè)計本質(zhì)就是為了解決問題而存在的,下面列出了5大比較典型的原則。

            1.         業(yè)務(wù)邏輯開發(fā)

            a)         比如游戲為了增加存儲,你就需要考慮使用內(nèi)存數(shù)據(jù)庫還是弄個數(shù)據(jù)庫網(wǎng)關(guān)服務(wù)器來處理。

            b)         比如游戲為了管理游戲玩家賬號,以及支持對平臺賬號的接入,那么就需要賬號服務(wù)器。

            c)         比如游戲為了管理游戲玩家訂單和跟蹤付費情況,可能就需要支付服務(wù)器,如果游戲類型是計時收費的話,那么可能會需要計時服務(wù)器。

            2.         運營維護

            a)         配置

            這里牽涉到靜態(tài)配置和動態(tài)配置的問題,假設(shè)現(xiàn)在有一臺網(wǎng)關(guān)服務(wù)器和三臺游戲邏輯服務(wù)器,靜態(tài)配置的話,就是網(wǎng)關(guān)服務(wù)器這邊寫死只連接這三臺服務(wù)器,然后讓網(wǎng)關(guān)服務(wù)器主動去連接,動態(tài)配置的話,就是讓這三臺服務(wù)器知道這個網(wǎng)關(guān)服務(wù)器的地址,然后自己在啟動的時候去連接。

            b)         開啟或者關(guān)閉順序

            這主要是看各個服務(wù)器上面負(fù)責(zé)什么功能以及服務(wù)器上面的相關(guān)功能,拿游戲登陸服務(wù)器,游戲邏輯服以及數(shù)據(jù)庫網(wǎng)關(guān)服務(wù)器這三個服務(wù)器的架構(gòu)來說,比如開啟的時候,你盡可能地跟玩家登陸連接的順序相反, 一般都是數(shù)據(jù)庫網(wǎng)關(guān)服務(wù)器,然后才是游戲邏輯服,最后才是游戲登陸服務(wù)器,其實就是防止玩家過早地登陸進來,卻發(fā)現(xiàn)數(shù)據(jù)還沒有準(zhǔn)備好。

            關(guān)閉的順序其實就是相反的,主要原則就是讓數(shù)據(jù)盡可能地保存好,并且讓玩家不再進來。

            c)         動態(tài)增刪改

            增刪改分為三部分:1)增加一臺服務(wù)器,2)減少一臺服務(wù)器,3)修改服務(wù)器信息,比如前面提到的靜態(tài)配置,就是不太方便增加服務(wù)器,要增加一臺服務(wù)器,需要更新網(wǎng)關(guān)服務(wù)器的配置表,然后讓網(wǎng)關(guān)服務(wù)器重新連接到新的服務(wù)器,而動態(tài)配置的話,就非常方便,讓新增的服務(wù)器發(fā)起到網(wǎng)關(guān)服務(wù)器就好了。無需更改配置。

            d)         服務(wù)器管理

            服務(wù)器的管理主要在服務(wù)器的在線離線狀態(tài)的管理,中心服務(wù)器(用來管理其它服務(wù)器)必須實時知道所管理服務(wù)器的狀態(tài),比如網(wǎng)關(guān)服務(wù)器必須要實時知道游戲邏輯服的狀態(tài),這樣才好更新到登陸服務(wù)器上面,更改服務(wù)器狀態(tài)。基本上在眾多同級服務(wù)器上面基本上都會有個中心服務(wù)器。

            3.         性能效率

            這需要權(quán)衡利弊和性能優(yōu)劣,比如在ARPG游戲邏輯服務(wù)器里面大量的消耗在AI上面,那么就要考慮給弄個線程還是進程,這同樣適用于聊天功能,有一些聊天功能,或許可以選擇使用UDP來作為網(wǎng)絡(luò)層通訊方式。是否將功能模塊設(shè)計成單獨進程,這需要權(quán)衡,雖然可能在運營中會部署內(nèi)網(wǎng),相互之間是通過發(fā)消息的,類似于共享內(nèi)存,但是還是會產(chǎn)生一些消耗的。

             

            4.         負(fù)載均衡

            這里包括兩個部分,硬件負(fù)載均衡,和軟件負(fù)載均衡。硬件負(fù)載均衡主要是指路由器。軟件負(fù)載均衡主要有幾種軟件,nginx/lvs/haproxy/dns, 負(fù)載均衡的策略,可以參考nginx 的負(fù)載均衡,主要有round-robin, least-connected, 以及ip-hash等。

            一般來說,游戲中大都是二級負(fù)載,首先是在登陸這邊負(fù)載一次,然后再在進入游戲邏輯服那邊負(fù)載一次,這樣就夠了。

            5.         安全性

            這里說下網(wǎng)關(guān)服務(wù)器,其它地方也叫前置服務(wù)器,front-end servers,,這個有幾個好處:1)隱藏游戲邏輯服的連接信息. 2) 統(tǒng)籌游戲邏輯服的負(fù)載信息。

            Ø  服務(wù)器框架示例

            1)         無中心服務(wù)器架構(gòu)

            2)         有中心服務(wù)器架構(gòu)

            Ø  結(jié)論

            服務(wù)器框架設(shè)計更像一門藝術(shù),需要在解決問題的同時,又需要注意平衡得失。

             




            posted on 2016-04-16 17:33 jolley 閱讀(1246) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            亚洲精品无码久久不卡| 99精品久久久久久久婷婷| 国产AV影片久久久久久| 久久久无码精品亚洲日韩蜜臀浪潮| 91精品无码久久久久久五月天| 久久亚洲日韩精品一区二区三区| 无码国内精品久久综合88| 久久久久久亚洲精品不卡| 久久www免费人成看国产片| 久久久精品波多野结衣| 久久综合视频网站| 伊人久久一区二区三区无码| 一级女性全黄久久生活片免费 | 亚洲国产婷婷香蕉久久久久久| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | avtt天堂网久久精品| 新狼窝色AV性久久久久久| 久久婷婷五月综合97色| 热久久这里只有精品| 精品国产乱码久久久久久浪潮 | 久久婷婷午色综合夜啪| 日韩欧美亚洲综合久久 | 久久久精品2019免费观看| 久久国产精品99国产精| 国产伊人久久| 性欧美大战久久久久久久久| 久久福利青草精品资源站免费| 久久九色综合九色99伊人| 伊人久久大香线蕉AV色婷婷色| 青青草国产精品久久| 四虎国产精品成人免费久久| 一本色道久久88精品综合| 99国内精品久久久久久久| 中文字幕无码av激情不卡久久| 婷婷五月深深久久精品| 国产亚州精品女人久久久久久 | 久久亚洲中文字幕精品有坂深雪 | 国产69精品久久久久99| 欧美精品乱码99久久蜜桃| 91久久成人免费| 久久无码人妻一区二区三区午夜 |