• <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>
            隨筆-4  評論-40  文章-117  trackbacks-0

             



                原文:http://m.shnenglu.com/jaxe/archive/2010/08/30/125258.html

              在游戲服務器中,處理玩家登陸需要向數(shù)據(jù)庫查詢玩家的賬號和密碼,玩家上線和下線需要對玩家的角色數(shù)據(jù)從數(shù)據(jù)庫中讀取和保存??梢哉f,相對于游戲邏輯處理來說,數(shù)據(jù)庫操作是一種相對很慢的操作,即便你通過使用多個線程多個數(shù)據(jù)庫連接來提高數(shù)據(jù)庫操作的處理能力,但是,在高并發(fā)高負載的服務器應用中,這樣仍然會是相當?shù)呢撦d瓶頸。設想這樣一種設計方案,見下圖:


            按此在新窗口瀏覽圖片

              在大量玩家登陸游戲服務器時,由于有大量的數(shù)據(jù)庫訪問請求,即便是有自己實現(xiàn)的CACHE機制,還是會導致服務器耗盡所有的邏輯線程資源,服務器的處理能力將降低成DBMS的處理能力。
               
                為了不阻塞邏輯線程,可以采用異步數(shù)據(jù)庫訪問的方式,即數(shù)據(jù)庫操作請求提交給專門的數(shù)據(jù)庫處理線程池,然后邏輯線程不再等待數(shù)據(jù)庫處理結(jié)果,繼續(xù)處理其他,不再阻塞在這里。

                抽象的來看,對于一個需要持久化的游戲?qū)ο髞碚f,可以考慮它有2個方法,讀取和保存。那么我們抽象一個DBO接口:
               
            struct IDbo
            {
               virtual bool SaveToDB(DB*)=0;
               virtual bool LoadFromDB(DB*)=0;
            };



                然后把設計方案改成下面這種:


            按此在新窗口瀏覽圖片

                改成數(shù)據(jù)庫異步處理后,在想想現(xiàn)在的游戲數(shù)據(jù)的保存機制應該是怎樣改進的,為了保障數(shù)據(jù)安全,我們希望不只是玩家下線的時候才會保存玩家數(shù)據(jù),而是希望每隔一段時間統(tǒng)一保存所有在線[來源:GameRes.com]玩家的數(shù)據(jù),那么,可以考慮這樣的思路:假設我們有一個GAMEDB服務器,GAMEDB緩存了所有在線玩家的角色數(shù)據(jù),每到保存時間,GAMEDB就將所有在線玩家的數(shù)據(jù)(DBO)的副本都統(tǒng)一提交給DB線程池,讓它保存數(shù)據(jù),提交的過程很快,提交完后,GAMEDB的邏輯線程仍能繼續(xù)處理游戲服務器的更新和讀取CACHE的請求。為什么要保存副本呢,DB線程的執(zhí)行保存隊列的過程也許很耗時,但是隊列中的數(shù)據(jù)都是GAMEDB提交DBO那個時刻的數(shù)據(jù),這樣就能保證玩家的游戲數(shù)據(jù)的完整性。

                 當然,我這里提的這只是個思路,這里面還有很多細節(jié)沒有討論,例如如果DB線程池正在保存九點鐘時刻保存的數(shù)據(jù),到了十點鐘新的保存時刻時,DB線程池還沒保存完九點鐘時刻的DBO副本隊列,這時應該怎么處理;DBO對象的劃分粒度的問題;DBO隊列的優(yōu)先級的問題等等。
            posted on 2011-01-20 11:29 李陽 閱讀(1194) 評論(0)  編輯 收藏 引用 所屬分類: 游戲開發(fā)
            久久人人爽人人爽AV片| 日韩人妻无码一区二区三区久久| 7777久久亚洲中文字幕| 青青青青久久精品国产h| 久久亚洲天堂| 亚洲AV无码久久精品色欲| 久久亚洲高清观看| 思思久久好好热精品国产| 狠狠色狠狠色综合久久| 久久精品国产精品青草app| 伊人久久精品影院| 国产精品成人99久久久久| 色婷婷综合久久久久中文一区二区| 久久99精品久久久久久齐齐| 精品熟女少妇a∨免费久久| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 欧美日韩成人精品久久久免费看| 一本一本久久A久久综合精品 | 久久久老熟女一区二区三区| 久久久久国产| 伊人久久大香线蕉影院95| 久久精品国产亚洲AV无码娇色 | 国产精品99久久精品| 无码伊人66久久大杳蕉网站谷歌 | 伊人久久大香线蕉综合热线| 伊人久久大香线蕉精品| 99久久国产热无码精品免费| 色欲av伊人久久大香线蕉影院| 日产久久强奸免费的看| 欧美一级久久久久久久大片| 久久免费视频一区| 94久久国产乱子伦精品免费 | 久久99国产精品尤物| 久久综合香蕉国产蜜臀AV| 久久这里只有精品18| 亚洲精品美女久久777777| 亚洲午夜久久久久久久久久| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲成av人片不卡无码久久| 久久综合九色综合久99| 婷婷久久五月天|