青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

飯中淹的避難所~~~~~

偶爾來避難的地方~

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  94 隨筆 :: 0 文章 :: 257 評論 :: 0 Trackbacks

首先,二話不說,上圖(用Windows畫圖畫的。。。)


這個圖是一個區的架構圖,所有區的架構是一樣的。上面虛線框的ServerGroup和旁邊方框內的架構一樣。圖上的所有x N的服務器,都是多臺一起的。紅線,綠線,和藍線圖上也有圖示,這里就不多介紹了。關于Agent Server大家也能看出來,其實就是Gate。
這里主要介紹下圖上的標記了號碼的位置的數據連接的內容和意義。

1-   這是一條WebService的管道,在用戶激活該區帳號,或者修改帳號密碼的時候,通過這條通道來插入和更新用戶的帳號信息。
2-   這也是一條WebService管道,用來獲取和控制用戶該該組內的角色信息,以及進行付費商城代幣之類的更新操作。
3-   這是一條本地的TCP/IP連接,這條連接主要用來進行服務器組在登陸服務器的注冊,以及登陸服務器驗證帳戶后,向用戶服務器注冊帳戶登陸信息,以及進行對已經登陸的帳戶角色信息進行操作(比如踢掉當前登陸的角色),還有服務器組的信息更新(當前在線玩家數量等)。
4-   這也是一條本地TCP/IP連接,這條連接用來對連接到GameServer的客戶端進行驗證,以及獲取角色數據信息,還有傳回GameServer上角色的數據信息改變。
5-   這條連接也是一條本地的TCP/IP連接,它用來進行公共信息服務器和數個游戲服務器間的交互,用來交換一些游戲世界級的信息(比如公會信息,跨服組隊信息,跨服聊天頻道等)。
6-   這里的兩條連接,想表達的意思是,UserServer和GameServer的Agent是可以互換使用的,也就是玩家進入組內之后,就不需要再切換Agent。如果不怕亂套,也可以把登陸服務器的Agent也算上,這樣用戶整個過程里就不需要再更換Agent,減少重復連接的次數,也提高了穩定性。(畢竟連接次數少了,也降低了連不上服務器的出現幾率)

在這個架構里面,GameServer實際上是一個游戲邏輯的綜合體,里面可以再去擴展成幾個不同的邏輯服務器,通過PublicServer進行公共數據交換。
UserServer實際上扮演了一個ServerGroup的領頭羊的角色,它負責向LoginServer注冊和更新服務器組的信息(名字,當前人數),并且對Agent進行調度,對選擇了該組的玩家提供一個用戶量最少的Agent。同時,它也兼了一個角色管理服務器的功能,發送給客戶端當前的角色列表,角色的創建,刪除,選擇等管理操作,都是在這里進行的。而且,它還是一個用戶信息的驗證服務器,GameServer需要通過它來進行客戶端的合法性驗證,以及獲取玩家選擇的角色數據信息。


采用這種架構的游戲,通常有以下表現。
1- 用戶必須激活一個大區,才能在大區內登陸自己的帳號。
2- 用戶啟動客戶端的時候,彈出一個登陸器,選擇大區。
3- 用戶啟動真正的客戶端的時候,一開始就是輸入帳號密碼。
4- 帳號驗證完成之后,進行區內的服務器選擇。
5- 服務器選擇完成之后,進入角色管理。同時,角色在不同的服務器里不能共享。

市面上符合上面幾個表現特征的游戲相當的多,而且也不乏曠世巨作。這個架構不是一個新的架構,但是它足夠經典和完善,并且邏輯簡單而清晰,用來做MMORPG,或者其它網絡游戲的服務器架構,是一種不錯的選擇。

posted on 2008-04-10 19:14 飯中淹 閱讀(31606) 評論(35)  編輯 收藏 引用

評論

# re: 一種經典的網絡游戲服務器架構 2008-04-10 21:24 Kevin Lynx
飯叔叔關于服務器架構的文章,收藏加細讀.:D  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-11 08:44 夢在天涯
圖畫的很好!  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-11 13:34 xiaolige
能上點bigworld等單一世界的服務端架構嗎,期待ing  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-11 13:43 Bugs
已閱  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構[未登錄] 2008-04-11 14:42 noname
和SunOnline(奇跡世界)的架構差不多啊  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-12 15:21 dophi
有收獲  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-13 18:25 杜中偉
我想以后會需要,頂,以后能找到了.  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-16 09:43 alittlewolf
有幾個問題:
(1) Public Server是否會成為瓶頸呢?
(2) User Server壓力會不會過大?
(3) Login Server是不是也要考慮分布式?
(4) Group DB是通過何種方式保證性能? 分布式數據庫? 引入高價的存儲設備?  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-16 09:46 alittlewolf
另外一個不解的地方是, 為什么所有Server前面都放著Agent Server? 從安全性方面考慮? 告別Game Server Group前面的Agent Server Group, 望解釋.  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-16 09:47 alittlewolf
另外一個不解的地方是, 為什么所有Server前面都放著Agent Server? 從安全性方面考慮? 特別是Game Server Group前面的Agent Server Group, 望解釋.   回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-04-16 09:59 飯中淹
@alittlewolf
(1) 每組承載量,一般是10000人左右。在目前主流服務器硬件條件下,PublicServer為這些人做服務是輕松的。
(2) UserServer 沒有太大壓力,只是做為一個驗證平臺,角色管理的資源消耗也不大,這個在實際中已經驗證過了。
(3) LoginServer 沒什么必要分布式,雖然一般登陸的壓力比較大,但是對于一個組來說,登陸驗證都是消耗最小的一個操作,沒有長期壓力。而且它的硬件條件也是比較好的,所以不用分布式的,那樣會增加整個系統的復雜性。
(4) 一般這種架構下,GroupDB和UserServer之間會做一個Cache,杜絕頻繁的數據庫讀寫。處于安全性和性能考慮,可以選擇帶有集群功能的數據庫。不過從成本出發,一般是單臺的DB服務器,一個庫搞定。

(5) Agent是用來進行用戶過濾,分流和調度的。同時也是出于安全性考慮。另外也是為了降低后臺服務器的壓力。而且用Agent可以實現很多比較效率的處理方式。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-06-16 20:12 Hellfire
目前主流的mmo應該都是這種架構,足夠用了。關鍵點在一個agent,
安全性,負載均衡, 后臺服務的屏蔽,都有保障了。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-13 11:43 非風
一些疑問,希望得到博主的解答:

PublicServer要完成跨服組隊信息,跨服聊天頻道功能,那么它不應該放置在方框中,不能屬于特定的組中,因為它還需要和其他組交換數據。

ControlAndDataCenter的功能是什么?是不是它僅僅就是一個DB 中心,全國所有區域服務器的一個數據中心,區域服務器從它拿玩家的帳號信息?
如果是UserServer為什么要連接它,前面在激活時候所有數據已經獲取到了AreaDB中?


AreaDB僅僅是一個DB它如何通過○1 向ControlAndDataCenter要數據?

  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-13 11:54 飯中淹
1- PublicServer是組內跨服組隊和聊天,也就是在一個服務器名字下面的跨服.這里跨服是物理服.

2- 控制和數據中心的功能是提供數據推送和信息收集,以及服務器狀態控制.
他和userserver進行通信,是為了進行數據更新,信息收集和狀態控制,在2的說明里已經提到了。

3- 這里面的所有db都不是單純的一個數據庫,而是一套稱為dbproxy或者dbagent的東西,它有邏輯處理能力。
但是,它不會向數據中心要數據。在我的設計里,數據中心是請求者,而非被請求者。所有數據更新的發起者都是數據中心,因為所有用戶信息的修改都在這里進行。AreaDB只是被動的接受數據中心的數據更新,而不向數據中心要數據。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 11:02 laofu
一組服務器10000人,現在一般不怎么火的游戲一組能上2000就不錯了,這么龐大的一組服務器不會造成成本很高么  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 11:32 飯中淹
因為各個服務器的邏輯都是分開的,所以可以有選擇的靈活部署,這樣可以根據實際情況有效的節約成本.  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 14:53 非風
@飯中淹
多謝樓主解答,不過還是有一些疑問,我說一下自己對這個架構的理解。
從用戶登錄開始,用戶登錄連接網關,發數據到loginserver校驗賬戶密碼,如果areaDB中沒有賬戶信息,向數據中心要賬戶密碼,插入areaDB,以后校驗賬戶就可以直接在區域DB中做了,如果賬戶密碼校驗成功,發送本區的組列表給客戶端,玩家選擇某個服務器,login獲取生成一個key發給userserver,同時把key發給客戶端以及一個網關的ip端口,客戶端使用其連接,發送key到Userserver,比對key,非法踢掉客戶端連接,合法userserver向數據中心獲取賬戶詳細信息,比如賬戶上剩余點卡等,同時向GroupDB獲取本組中的自己的角色,得到這些信息都發給客戶端,客戶端選擇一個角色進入游戲,userserver從數據庫讀取該角色的完全信息,根據玩家之前的位置確定進入那個gameserver(我認為游戲服務器是根據地圖劃分的,不知道對不對?),角色數據傳到gameserver,同時客戶端根據這些數據進入場景,gameserver得到信息同時告知publicserver(publicserver連DB做什么?我猜測可以獲取工會以及工會成員信息,對否?)


  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 16:51 飯中淹
@非風
是的,差不多的.
不過我不會讓AreaDB去數據中心請求數據。
我在上面說的是,只有用戶進行激活,才會把用戶資料放到AreaDB

而且點卡都是按照Area來沖值的。

所有的游戲需要的資料都在Area本地提供,不會向數據中心請求數據。
  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 17:52 laofu
向數據中心請求數據的話,在剛開區的時候數據中心壓力肯定很大  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 18:13 非風
@飯中淹
明白,官網提供功能,玩家自己到官網激活,完成數據中心到區域數據的轉移。充值自己選區,數據中心把數據更新到相應的areaDB中,這樣避免很多程序問題。

另外userserver和數據中心的數據交換是不是會是這個架構的瓶頸?玩家登入登出都需要userserver和數據中心交換數據,而數據中心一定是在外網,而且所有區唯一,象網易同時在線上百萬,數據中心承受的壓力相當大,會很影響性能吧?盡管這個連接是短連接。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-08-15 18:17 飯中淹
@非風

玩家登入登出,userserver不需要和數據中心交換數據.

數據中心只是查詢和收集服務器信息或者個人信息的時候才需要和userserver進行交互。

玩家的角色信息都是保存在GroupDB里面的。
  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-09-04 11:03 XiaoA
@飯中淹

其實對Agent的作用還是很不解.首先從走路來說, pc--->發送走路到agent,agent--->將消息轉發到gameserver--->gameserver

感覺這時候有問題了.gameserver是不是要廣播到所有的agent?然后agent在通知所有的人? 還是在gameserver紀錄一個用戶的agent,先產生哪些用戶需要接收這個人的消息,然后再直接通知這些用戶所在的agent,agent再通知pc,pc實現行走?

另外,這樣是不是會加大網絡延時?這樣對技能的冷卻時間是不是有很高的要求?  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-09-27 14:42 非風
game可以根據消息號作處理了,agent僅僅是個門,負責進出  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-12-25 17:18 minus
結構太過復雜,沒有必要  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2008-12-25 17:26 minus
把橫向的連接都去掉,6也去掉簡潔多了,也合理多了  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2009-04-08 17:53 似水流年
提個問題:Game Server間是否進行直接通信。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2009-06-09 17:10 liquidx
可以來我博客看看  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2009-12-19 11:55 zxl3d
首先肯定樓主的架構很強大,但Agent過于復雜,是否可以不要。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構[未登錄] 2010-12-30 00:01 by
@zxl3d
Agent不可不要,因為主要靠這個保持架構靈活性。  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2011-01-01 16:16 dynas
如何知道玩家在哪個gameServer上,agent保存了玩家位置信息?  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2011-01-01 16:25 dynas
還是UserServer保存了玩家位置,每次gate收到客戶端消息,先發送到UserServer,根據里面保存孤玩家位置,中轉到所在GameServer?  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2011-04-28 15:28 dfdf
人才呀!  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構[未登錄] 2011-06-19 10:28 King
飯哥,請教一個問題。 你說Agent Server是Gate,這個是哪種類型的網關,是怎么實現的?   回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構[未登錄] 2011-06-21 09:38 飯中淹
@dynas
玩家位置,在userserver上有記錄。
agent上有客戶端和gameserver建立的繪畫映射,不需要再經過userserver中轉
@King
純轉發型網管。順帶有加密和解密的工作。
  回復  更多評論
  

# re: 一種經典的網絡游戲服務器架構 2014-03-12 11:02 mikie
學習了 make一下  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品美女| 日韩午夜免费| 久久久中精品2020中文| 好吊日精品视频| 美女爽到呻吟久久久久| 美国十次成人| 亚洲免费久久| 亚洲一区久久| 国内成+人亚洲| 欧美福利视频| 欧美私人啪啪vps| 亚洲欧美日韩综合一区| 久久成人18免费网站| 91久久精品国产91久久| 99视频+国产日韩欧美| 国产美女精品免费电影| 久热爱精品视频线路一| 夜夜夜精品看看| 美女露胸一区二区三区| 欧美成人一品| 香蕉久久精品日日躁夜夜躁| 久久精品麻豆| 在线中文字幕不卡| 午夜亚洲激情| 亚洲精品专区| 小处雏高清一区二区三区 | 亚洲一区二区三区四区中文| 亚洲欧美欧美一区二区三区| 在线日韩av片| 一本色道久久综合亚洲精品小说| 国产亚洲一级| 亚洲精品小视频在线观看| 国产欧美精品va在线观看| 欧美激情一区二区三区在线视频观看| 欧美午夜免费| 欧美v亚洲v综合ⅴ国产v| 欧美日韩综合视频| 巨乳诱惑日韩免费av| 欧美日韩的一区二区| 久久不见久久见免费视频1| 欧美高清成人| 久久精品一区二区三区不卡牛牛| 欧美精品v日韩精品v韩国精品v | 国产精品豆花视频| 嫩草影视亚洲| 欧美日韩在线视频观看| 免费成人在线视频网站| 国产精品国产三级欧美二区| 蜜桃伊人久久| 国产精品一二| 91久久国产精品91久久性色| 国产一级一区二区| 亚洲精品综合在线| 在线欧美视频| 亚洲女同精品视频| 99成人在线| 久久精品日韩| 欧美一区二区视频网站| 欧美精品一区三区在线观看| 久久躁狠狠躁夜夜爽| 国产精品扒开腿做爽爽爽视频| 欧美成人a视频| 国产一区二区无遮挡| 夜夜爽www精品| 亚洲精品社区| 久久嫩草精品久久久久| 欧美中文在线字幕| 国产精品国产三级国产普通话99| 亚洲国产成人久久综合一区| 红桃视频亚洲| 亚洲欧美国产日韩中文字幕| 欧美激情久久久久| 久久午夜视频| 国产日韩欧美成人| 国产精品theporn88| 欧美激情第10页| 在线观看成人av电影| 新67194成人永久网站| 亚洲影视在线播放| 欧美日韩国产在线播放网站| 亚洲国产美女精品久久久久∴| 伊伊综合在线| 久久精品99无色码中文字幕| 午夜精品国产更新| 欧美日韩喷水| 亚洲精选中文字幕| 99精品久久久| 欧美激情欧美激情在线五月| 欧美黄色网络| 91久久国产综合久久蜜月精品 | 麻豆成人在线| 蜜臀99久久精品久久久久久软件 | 久久成年人视频| 久久国产精品一区二区三区| 国产精品日日摸夜夜添夜夜av| 一本色道久久88综合亚洲精品ⅰ| 一区二区三区国产在线| 欧美精品久久一区二区| 亚洲国产日韩欧美| 亚洲日本无吗高清不卡| 欧美1区3d| 亚洲高清免费视频| 亚洲毛片在线| 欧美激情一区二区三区在线视频观看| 亚洲高清一区二| 亚洲九九精品| 欧美日韩免费高清一区色橹橹| 亚洲人成网站色ww在线| 99在线精品视频| 欧美日韩精品一区二区三区四区| 日韩视频专区| 亚洲一区二区三区在线看 | 国语自产精品视频在线看一大j8| 欧美一区二区女人| 久久尤物电影视频在线观看| 影音先锋在线一区| 美女福利精品视频| 亚洲第一黄色| 在线亚洲观看| 国产精品区二区三区日本| 午夜精品免费| 久久综合狠狠综合久久综青草 | 性亚洲最疯狂xxxx高清| 国产欧美日韩一区二区三区在线观看| 亚洲综合国产精品| 久久午夜电影| 亚洲日本激情| 欧美日韩亚洲成人| 亚洲无线视频| 久久精品日产第一区二区| 一区二区亚洲精品国产| 欧美在线免费观看| 欧美极品一区| 亚洲一区二区高清| 久久久久国色av免费观看性色| 在线播放亚洲| 欧美连裤袜在线视频| 亚洲视频专区在线| 久久免费精品视频| 亚洲欧洲在线播放| 欧美日韩在线播放一区| 午夜精品国产| 欧美国产日韩一区二区三区| 日韩亚洲欧美成人一区| 国产精品日本欧美一区二区三区| 亚洲一区二区三| 免费久久99精品国产自| 一区二区三区高清在线观看| 国产拍揄自揄精品视频麻豆| 另类图片综合电影| 一本色道久久88综合亚洲精品ⅰ| 久久精品亚洲精品国产欧美kt∨| 亚洲欧洲精品成人久久奇米网| 欧美视频在线播放| 久久www成人_看片免费不卡| 亚洲激情校园春色| 欧美在线观看网站| 亚洲精品国偷自产在线99热| 国产精品成人观看视频国产奇米| 久久精品中文字幕一区| 亚洲免费成人av电影| 久久国产精品网站| 日韩亚洲成人av在线| 国产一区91| 欧美片在线播放| 久久国产精品亚洲77777| 欧美大胆a视频| 亚洲欧美在线视频观看| 亚洲国产高潮在线观看| 国产精品久久国产精麻豆99网站| 久久蜜桃资源一区二区老牛| 99一区二区| 欧美大片在线影院| 欧美一级大片在线免费观看| 亚洲精品一二三区| 国产日韩专区| 欧美日韩国产一级| 久久久久久穴| 亚洲一区二区三区视频| 亚洲国产高清在线观看视频| 欧美在线视频全部完| 夜夜嗨av一区二区三区四区| 激情国产一区二区| 国产精品亚洲第一区在线暖暖韩国| 久久五月天婷婷| 亚洲欧美综合一区| 日韩一级大片在线| 欧美激情第1页| 久久久夜精品| 欧美一级精品大片| 中文成人激情娱乐网| 亚洲第一网站免费视频| 国产日韩欧美日韩| 欧美视频一区二区三区在线观看| 欧美99久久| 久久久久国产精品人| 亚洲免费一在线| 99成人精品| 亚洲国产专区校园欧美| 免费高清在线一区|