亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種新型MMOG游戲服務(wù)器架構(gòu)設(shè)計(jì)方案

        2016-06-08 06:49:00馬利麒
        現(xiàn)代計(jì)算機(jī) 2016年13期
        關(guān)鍵詞:大區(qū)區(qū)分客戶端

        馬利麒

        (西南交通大學(xué)電氣工程學(xué)院,成都 610031)

        ?

        一種新型MMOG游戲服務(wù)器架構(gòu)設(shè)計(jì)方案

        馬利麒

        (西南交通大學(xué)電氣工程學(xué)院,成都610031)

        摘要:

        關(guān)鍵詞:

        0 引言

        在網(wǎng)絡(luò)游戲中,服務(wù)器是網(wǎng)絡(luò)游戲的大腦和心臟,是網(wǎng)游中最重要的部分,一方面,服務(wù)器和客戶端保持連接,負(fù)責(zé)大量玩家的同時接入。另一方面,服務(wù)器負(fù)責(zé)游戲的運(yùn)行,包括游戲的同步和廣播,同時,要承擔(dān)起避免游戲玩家作弊的責(zé)任[1]。當(dāng)游戲的受歡迎程度很高的時候,游戲玩家數(shù)量會激增,這時就會有很高的并發(fā)連接數(shù),從而產(chǎn)生大量的數(shù)據(jù)運(yùn)算和數(shù)據(jù)吞吐量,此時服務(wù)器的性能決定了玩家的用戶體驗(yàn),為了提供良好的服務(wù)品質(zhì),網(wǎng)絡(luò)游戲的服務(wù)端的設(shè)計(jì)顯得尤為重要,進(jìn)行網(wǎng)絡(luò)游戲服務(wù)端架構(gòu)的研究,對于游戲產(chǎn)業(yè)的蓬勃發(fā)展和現(xiàn)行游戲的開發(fā)都有積極的意義[2]。

        1 設(shè)計(jì)原則

        在網(wǎng)絡(luò)游戲中,服務(wù)器端負(fù)責(zé)響應(yīng)客戶端的連接請求和游戲內(nèi)的邏輯處理,伴隨著網(wǎng)游的玩家越來越多,服務(wù)器端所承受的壓力也越來越大,面對海量的用戶,既要保證流暢的運(yùn)行環(huán)境,又要盡最大可能地提供優(yōu)質(zhì)的用戶體驗(yàn),就需要依靠一個優(yōu)秀的服務(wù)器架構(gòu)去支撐,一般來說,服務(wù)器架構(gòu)的設(shè)計(jì)原則主要包括以下[3]:

        ●安全。要充分考慮系統(tǒng)更新、異常對系統(tǒng)的沖擊,保證玩家數(shù)據(jù)的安全可靠性。

        ●穩(wěn)定。對于一款MMOG游戲來說,穩(wěn)定性是最基本也是最重要的指標(biāo)。要求系統(tǒng)對于資源的消耗可控,有過載控制,能夠長期24小時不間斷運(yùn)行。

        ●可擴(kuò)展。游戲的變化日新月異,內(nèi)容也會隨版本的更新周期性迭代,這就要求系統(tǒng)容納能力的可擴(kuò)展與系統(tǒng)功能的可擴(kuò)展。

        ●低耦合。各個主要功能均抽象為一個模塊,并且不依賴于具體實(shí)現(xiàn),分別由獨(dú)立的服務(wù)器運(yùn)行,盡量做到低耦合,以應(yīng)對底層實(shí)現(xiàn)的變化。

        ●簡單。每一個模塊盡可能簡單、功能單一,能讓有一定技術(shù)經(jīng)驗(yàn)和行業(yè)背景的人士非常容易理解,不采用過于復(fù)雜的設(shè)計(jì)。

        ●性能。MMOG很多時候受到了CPU、網(wǎng)絡(luò)流量的限制,因此在重點(diǎn)函數(shù)(如:戰(zhàn)斗、移動、廣播)的消息處理中優(yōu)化CPU和流量消耗,避免架構(gòu)中的單點(diǎn)瓶頸。

        2 傳統(tǒng)游戲服務(wù)器架構(gòu)

        若以游戲分區(qū)方式來劃分服務(wù)器的組織架構(gòu),目前可以大體劃分為兩大類[4]:一種是分區(qū)分服的方式,平行分成多個大區(qū),單個大區(qū)的承載量是有上限限制的,各個大區(qū)之間完全獨(dú)立,不同大區(qū)之間的玩家不可見,也不可進(jìn)行交互;另一種是全區(qū)全服的方式,即一個大區(qū)承載所有的玩家,沒有承載上限限制,玩家之間可以進(jìn)行各種交互,好處就是單個大區(qū)玩家數(shù)量很多,不會出現(xiàn)鬼服的情況。之所以要做這樣的架構(gòu)區(qū)分,歸納起來只要有以下幾點(diǎn):

        (1)游戲類型的不同,導(dǎo)致需要在DB層做區(qū)分:全區(qū)全服只有一個DB,而分區(qū)分服的每個服都有獨(dú)立的DB;

        (2)游戲類型的不同,導(dǎo)致數(shù)據(jù)互通性不同:邏輯服務(wù)器網(wǎng)頁游戲必須要做區(qū)分,例如各個平臺需要獨(dú)立運(yùn)營,獨(dú)立結(jié)算,開服活動只能針對制定服等。

        (3)單服所能承載的玩家數(shù)量級不同,導(dǎo)致架構(gòu)上調(diào)整:全區(qū)全服所有玩家在一個服,分區(qū)分服分?jǐn)傇诟鱾€不同服,單服玩家數(shù)量不在一個級別,導(dǎo)致架構(gòu)上的考量不同。

        這樣架構(gòu)上的區(qū)分,就會導(dǎo)致實(shí)際情況中后臺服務(wù)器所面臨的壓力也有所區(qū)別,主要表現(xiàn)在如下三個方面:

        (1)DB層面。分區(qū)分服DB承載單服壓力,一般游戲單服PCU(同時在線玩家數(shù))是千級,甚至是萬級,DB讀寫壓力小,采用傳統(tǒng)的MySQL基本可以滿足需求;而全區(qū)全服架構(gòu)的DB承載所有的玩家,PCU可以達(dá)到百萬級別,讀寫壓力非常大,單一的MySQL不能滿足讀寫壓力,一般需要專門針對項(xiàng)目去做讀寫并發(fā)高的DB組件。

        (2)平滑擴(kuò)容層面。全區(qū)全服的擴(kuò)容是針對整個游戲后臺,在外網(wǎng)不停機(jī)擴(kuò)容中,需要考慮擴(kuò)容對整個后臺服務(wù)器的影響,而分區(qū)分服因?yàn)槊媾R擴(kuò)容的機(jī)會比較少,有開服情況,也是獨(dú)立的新建整個服,對其他服務(wù)器基本沒有影響。

        (3)容災(zāi)層面。全區(qū)全服在某個服務(wù)器進(jìn)程出現(xiàn)問題時,該模塊的壓力可能會偏向同等功能的其他進(jìn)程,需要處理血崩情況,避免影響全服。而分區(qū)分服因?yàn)樘烊坏膯畏g的個理性,在這一層面上壓力小很多。

        3 新型游戲服務(wù)器架構(gòu)設(shè)計(jì)

        上述兩種傳統(tǒng)服務(wù)器架構(gòu)方式各有利弊,本文所設(shè)計(jì)的一種新型的服務(wù)器架構(gòu)是對上述兩種架構(gòu)融合改進(jìn),可以同時享有兩種架構(gòu)的優(yōu)點(diǎn),即邏輯上還是劃分成多個大區(qū),在表現(xiàn)上屬于分區(qū)分服的架構(gòu)方式,但是各個大區(qū)之間又采用全區(qū)全服的架構(gòu)方式,使不同大區(qū)的玩家可以相互可見并且進(jìn)行各種交互,以下稱之為全區(qū)分服的服務(wù)器架構(gòu)。

        3.1設(shè)計(jì)思想

        全區(qū)分服式的服務(wù)器架構(gòu)設(shè)計(jì)思想主要遵循以下四個方面:

        (1)邏輯上還是要分區(qū)的,邏輯層面各個區(qū)間是相互獨(dú)立的,在沒有跨服玩法的需求的時候,玩家只能在自己所在的區(qū)游戲,排行榜等展示性內(nèi)容也只能在本區(qū)內(nèi)進(jìn)行,所以前端游戲服務(wù)器、排行榜服務(wù)器等邏輯服務(wù)器還是需要隔離開來,玩家剛登錄的時候是只能登錄自己所在的區(qū),如果要登錄其他區(qū),是需要重新創(chuàng)建角色的。

        (2)不同區(qū)玩家之間可以進(jìn)行交互,進(jìn)行一些跨服的玩法,不同區(qū)間玩家數(shù)據(jù)可見,所以要求中間路由層以及后面存儲層要統(tǒng)一進(jìn)行管理,不能隔離開來,以保證前端不同區(qū)的游戲服務(wù)器可以訪問任何一個區(qū)的玩家的數(shù)據(jù)。

        (3)在路由層面和存儲層面可以直接根據(jù)玩家的UID(賬號ID)來進(jìn)行統(tǒng)一管理,既能夠?qū)崿F(xiàn)需求,有能夠滿足日后擴(kuò)展性需求。

        (4)要求目錄服務(wù)器維護(hù)所有區(qū)的信息,所以,目錄服務(wù)器也是統(tǒng)一管理的,而不是每個區(qū)都有一個目錄服務(wù)器。這樣一方面可以動態(tài)擴(kuò)區(qū),即不需要客戶端升級就可以擴(kuò)新的區(qū);另一方面也能夠滿足功能需求,客戶端不用再重新登錄一次區(qū)內(nèi)的目錄服務(wù)器,減少與服務(wù)器交互次數(shù)。

        3.2邏輯架構(gòu)

        從部署層次來看,服務(wù)器邏輯整體分為五層:

        ●客戶接入層:進(jìn)行對客戶端連接的收斂與轉(zhuǎn)發(fā),主要由Connectsvr負(fù)責(zé)。

        ●游戲邏輯層:進(jìn)行業(yè)務(wù)邏輯運(yùn)算,主要由Gamesvr負(fù)責(zé)

        ●消息中轉(zhuǎn)層:負(fù)責(zé)中轉(zhuǎn)內(nèi)部消息,使通信各方的物理部署位置透明化。

        ●數(shù)據(jù)存儲層:提供數(shù)據(jù)緩存和持久化功能,包括Uidsvr、Dbsvr和MySQL等。

        ●服務(wù)支持層:提供各種服務(wù)器支持,包括與開放平臺、數(shù)據(jù)平臺等外部組件。

        為了更好地介紹全區(qū)分服的邏輯架構(gòu),本文對架構(gòu)圖進(jìn)行了精簡,對于部分服務(wù)器是多臺部署的則只精簡為一臺,方便理解。全區(qū)分服式的邏輯架構(gòu)如圖1所示。

        從架構(gòu)圖中我們可以清晰的看到:

        (1)客戶端都是通過連接到Connectsvr與服務(wù)器進(jìn)行通信的,Connectsvr負(fù)責(zé)對多個客戶端的連接進(jìn)行收斂并轉(zhuǎn)發(fā)。

        (2)Dirsvr和各個小區(qū)的Gamesvr互通,擁有各個小區(qū)的實(shí)時容量數(shù)據(jù),玩家首先登錄到dirsvr,請求拉取當(dāng)前小區(qū)列表以及各個小區(qū)實(shí)時狀態(tài),客戶端直接選擇一個小區(qū),并根據(jù)負(fù)載選擇一個相對壓力較小的Gamesvr直接登錄,并且客戶端本地緩存所登錄的Gamesvr,在此之后與服務(wù)器的交互都采取直連這臺Gamesvr,提高效率。

        (3)每個小區(qū)就是獨(dú)立的集合,每個Gamesvr及其附屬進(jìn)程獨(dú)占一臺機(jī)器,其他小區(qū)進(jìn)程:Zoneproxysvr(小區(qū)路由服務(wù)器),Guildsvr(工會服務(wù)器),Toplistsvr(排行榜服務(wù)器),Bosssvr(世界boss服務(wù)器)等小區(qū)級的功能服務(wù)器一同部署在一臺機(jī)器,如果某小區(qū)需要部署N個Gamesvr時,實(shí)際這個集合的機(jī)器數(shù)就是N+1。

        (4)玩家實(shí)際角色數(shù)據(jù)是緩存在Dbsvr上的,并通過Dbsvr回寫落地到DB,Dbsvr是屬于大區(qū)共享的,部署多臺Dbsvr時按照UID(玩家?guī)鬒D)哈希到對應(yīng)機(jī)器上的,以此實(shí)現(xiàn)了玩家數(shù)據(jù)的大區(qū)級互通。

        (5)進(jìn)程直接都是通過Proxysvr路由訪問的,小區(qū)級的邏輯則均通過Zoneproxysvr進(jìn)行轉(zhuǎn)發(fā),涉及到大區(qū)之間的數(shù)據(jù)交互則連接到Proxysvr進(jìn)行轉(zhuǎn)發(fā),各個進(jìn)程所在機(jī)器變動或者新增都只需要更新Proxysvr上配置即可,從而實(shí)現(xiàn)對應(yīng)路由的轉(zhuǎn)發(fā)。

        3.3優(yōu)缺點(diǎn)分析

        本文所設(shè)計(jì)的一種新型的全區(qū)分服的服務(wù)器架構(gòu)如上所述,優(yōu)點(diǎn)主要集中在以下幾個方面:

        (1)擁有像全區(qū)全服架構(gòu)的優(yōu)勢,后端全區(qū)玩家得到打通,豐富了游戲內(nèi)的社交玩法,獲取好友數(shù)據(jù)變得簡單和方便許多;

        (2)存儲更加集中,整個大區(qū)存在同一塊DB中,有利于進(jìn)行全區(qū)的縮容和擴(kuò)容;

        (3)同時保留了分區(qū)分服架構(gòu)的特性,能夠滿足游戲?qū)τ谏虡I(yè)化上面的需求,使游戲的玩法更加靈活,合服變得更加簡單。

        圖1 系統(tǒng)框架與流程全區(qū)分服式服務(wù)器邏輯架構(gòu)圖

        參考文獻(xiàn):

        [1]中國網(wǎng)絡(luò)游戲行業(yè)報(bào)告. GameRes游戲開發(fā)論壇,http://www.gameres.com

        [2]網(wǎng)絡(luò)游戲.百度百科.

        [3]蔣臻甄.網(wǎng)絡(luò)游戲服務(wù)器集群的設(shè)計(jì)和實(shí)現(xiàn).華東師范大學(xué),2006.

        [4]netprg.網(wǎng)游服務(wù)器通信架構(gòu)的設(shè)計(jì).程序員:游戲創(chuàng)造,2005.

        [5]Gao Huang. Modeling System Performance in MMORPG. Global Telecommunications Conference Workshops,2004:512-518.

        [6]Dante Treglia. Game Program Gems III[M],2003(7).

        [7]馬亞花.一種高性能的大型多人在線角色扮演游戲服務(wù)器架構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(09).

        [8]賀馮政.網(wǎng)絡(luò)游戲服務(wù)器通信架構(gòu)及關(guān)鍵技術(shù)研究[D].成都:電子科技大學(xué),2008.

        [9]樊建國.網(wǎng)絡(luò)游戲服務(wù)器通信架構(gòu)與結(jié)構(gòu)設(shè)計(jì)[J].中國新技術(shù)新產(chǎn)品,2009(21).

        A New MMOG Game Server Architecture Design

        MA Li-qi
        (College of Electrical Engineer,Southwest Jiaotong University,Chengdu 610031)

        Abstract:

        Keywords:

        MMOG游戲在項(xiàng)目開始階段對于后臺游戲邏輯不能夠完全給出需求,需要在開發(fā)過程中不斷地修正。因此對于后臺服務(wù)器開發(fā)比較合適采用原型的開發(fā)方式,即先給出服務(wù)器框架,然后在上面不斷地疊加或者變更功能。根據(jù)以往的開發(fā)經(jīng)驗(yàn),結(jié)合傳統(tǒng)服務(wù)器架構(gòu)的優(yōu)點(diǎn),規(guī)避其暴露出的缺點(diǎn),設(shè)計(jì)出一種新型的服務(wù)器架構(gòu),并描述出設(shè)計(jì)思想、基本架構(gòu)和工作流程,對游戲服務(wù)器架構(gòu)的基本問題有著較好的工程參考價(jià)值。

        MMOG;服務(wù)器架構(gòu);網(wǎng)絡(luò)游戲

        文章編號:1007-1423(2016)13-0047-04

        DOI:10.3969/j.issn.1007-1423.2016.13.013

        作者簡介:

        馬利麒(1991-),男,內(nèi)蒙古包頭人,研究生,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、服務(wù)器技術(shù)

        收稿日期:2016-03-15修稿日期:2016-04-18

        MMOG game at the beginning of the project stage for the background game logic is not able to fully give the needs of the development process,the need to constantly revise. Therefore,for the development of the background server is more suitable for the development of the prototype,that is,the first server framework,and then constantly superimposed on the above or change the function. According to the past development experience,combined with the advantages of the traditional server architecture,exposes the shortcomings to avoid design a new server architecture,and describes the design idea,basic structure and the work flow,the basic problem of game server architecture has a good reference value to the project.

        MMOG;Server Architecture;Network Game

        猜你喜歡
        大區(qū)區(qū)分客戶端
        區(qū)分“旁”“榜”“傍”
        你能區(qū)分平衡力與相互作用力嗎
        涪陵:工業(yè)大區(qū)打開綠色新場景
        智利第一大區(qū)HNX礦區(qū)IOCG型銅礦床地質(zhì)特征
        縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        教你區(qū)分功和功率
        罪數(shù)區(qū)分的實(shí)踐判定
        客戶端空間數(shù)據(jù)緩存策略
        亚洲欧洲成人a∨在线观看| 亚洲熟女国产熟女二区三区| 精品人妻一区二区三区不卡毛片| 精品一区二区三区四区国产| 精品日产卡一卡二卡国色天香| 少妇精品无码一区二区三区| 网红极品女神精品视频在线| 日本一区二区在线高清| 亚洲av综合a色av中文| 精品久久久久久久久午夜福利| 国产一区二区亚洲av| 国产自拍视频在线观看免费| 在线成人爽a毛片免费软件| 波多野结衣中文字幕在线视频| 99久久国产一区二区三区| 国产一区av男人天堂| 亚洲色国产欧美日韩| 国产欧美va欧美va香蕉在线观| av免费观看在线网站| 精品无人区无码乱码毛片国产| 午夜福利92国语| 不卡无毒免费毛片视频观看| 日韩一二三四区在线观看| 久久精品国产自在天天线| 日韩精品无码久久一区二区三| 视频精品熟女一区二区三区| 久久精品亚州中文字幕| 亚洲精品无码久久久久牙蜜区| 久久久AV无码精品免费 | 国产自拍视频一区在线| 无套内谢老熟女| 国产精品户露av在线户外直播 | 无码aⅴ精品一区二区三区| 又硬又粗又大一区二区三区视频| 日韩AV无码乱伦丝袜一区| 人妻中文字幕日韩av| 久久久久久国产精品mv| 欧美性一区| 丝袜美腿制服诱惑一区二区| 99热爱久久99热爱九九热爱| 国产精品三级一区二区按摩|