日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mangos源码分析(2):服务器结构探讨之登录服的负载均衡

發(fā)布時間:2023/12/4 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mangos源码分析(2):服务器结构探讨之登录服的负载均衡 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  回想一下我們在玩wow時的操作流程:運行wow.exe進入游戲后,首先就會要求我們輸入用戶名和密碼進行驗證,驗證成功后才會出來游戲世界列表,之后是排隊進入游戲世界,開始游戲...

  可以看到跟前面的描述有個很明顯的不同,那就是要先驗證帳號再選擇游戲世界。這種結(jié)構(gòu)也就使得登錄服不是固定配備給個游戲世界,而是全區(qū)共有的。

  我們可以試著從實際需求的角度來考慮一下這個問題。正如我們之前所描述過的那樣,登錄服在大多數(shù)情況下都是比較空閑的,也許我們的一個擁有20個游戲世界的大區(qū)僅僅使用10臺或更少的登錄服即可滿足需求。而當(dāng)在開新區(qū)的時候,或許要配備40臺登錄服才能應(yīng)付那如潮水般涌入的玩家登錄請求。所以,登錄服在設(shè)計上應(yīng)該能滿足這種動態(tài)增刪的需求,我們可以在任何時候為大區(qū)增加或減少登錄服的部署。

  當(dāng)然,在這里也不會存在要求添加太多登錄服的情況。還是拿開新區(qū)的情況來說,即使新增加登錄服滿足了玩家登錄的請求,游戲世界服的承載能力依然有限,玩家一樣只能在排隊系統(tǒng)中等待,或者是進入到游戲世界中導(dǎo)致大家都卡。

  另外,當(dāng)我們在增加或移除登錄服的時候不應(yīng)該需要對游戲世界服有所改動,也不會要求重啟世界服,當(dāng)然也不應(yīng)該要求客戶端有什么更新或者修改,一切都是在背后自動完成。

  最后,有關(guān)數(shù)據(jù)持久化的問題也在這里考慮一下。一般來說,使用現(xiàn)有的商業(yè)數(shù)據(jù)庫系統(tǒng)比自己手工技術(shù)先進要明智得多。我們需要持久化的數(shù)據(jù)有玩家的帳號及密碼,玩家創(chuàng)建的角色相關(guān)信息,另外還有一些游戲世界全局共有數(shù)據(jù)也需要持久化。

  好了,需求已經(jīng)提出來了,現(xiàn)在來考慮如何將其實現(xiàn)。

  對于負載均衡來說,已有了成熟的解決方案。一般最常用,也最簡單部署的應(yīng)該是基于DNS的負載均衡系統(tǒng)了,其通過在DNS中為一個域名配置多個IP地址來實現(xiàn)。最新的DNS服務(wù)已實現(xiàn)了根據(jù)服務(wù)器系統(tǒng)狀態(tài)來實現(xiàn)的動態(tài)負載均衡,也就是實現(xiàn)了真正意義上的負載均衡,這樣也就有效地解決了當(dāng)某臺登錄服當(dāng)機后,DNS服務(wù)器不能立即做出反應(yīng)的問題。當(dāng)然,如果找不到這樣的解決方案,自己從頭打造一個也并不難。而且,通過DNS來實現(xiàn)的負載均衡已經(jīng)包含了所做的修改對登錄服及客戶端的透明。

  而對于數(shù)據(jù)庫的應(yīng)用,在這種結(jié)構(gòu)下,登錄服及游戲世界服都會需要連接數(shù)據(jù)庫。從數(shù)據(jù)庫服務(wù)器的部署上來說,可以將帳號和角色數(shù)據(jù)都放在一個中心數(shù)據(jù)庫中,也可分為兩個不同的庫分別來處理,基到從物理上分到兩臺不同的服務(wù)器上去也行。

  但是對于不同的游戲世界來說,其角色及游戲內(nèi)數(shù)據(jù)都是互相獨立的,所以一般情況下也就為每個游戲世界單獨配備一臺數(shù)據(jù)庫服務(wù)器,以減輕數(shù)據(jù)庫的壓力。所以,整體的服務(wù)器結(jié)構(gòu)應(yīng)該是一個大區(qū)有一臺帳號數(shù)據(jù)庫服務(wù)器,所有的登錄服都連接到這里。而每個游戲世界都有自己的游戲數(shù)據(jù)庫服務(wù)器,只允許本游戲世界內(nèi)的服務(wù)器連接。

  最后,我們的服務(wù)器結(jié)構(gòu)就像這樣:

          ? 大區(qū)服務(wù)器?????? ?
          /??  ?? |?????? \
????        /??????????? |?????  \
?????      登錄服1? 登錄服2???? 世界服1?????? 世界服2
         \???  ?? |?????  ?? |????  ????? |? ?
          \?  ?? |??????  ?? |??????????????? |
          帳號數(shù)據(jù)庫???? DBS????????? DBS

  這里既然討論到了大區(qū)及帳號數(shù)據(jù)庫,所以順帶也說一下關(guān)于激活大區(qū)的概念。wow中一共有八個大區(qū),我們想要進入某個大區(qū)游戲之前,必須到官網(wǎng)上激活這個區(qū),這是為什么呢?

  一般來說,在各個大區(qū)帳號數(shù)據(jù)庫之上還有一個總的帳號數(shù)據(jù)庫,我們可以稱它為中心數(shù)據(jù)庫。比如我們在官網(wǎng)上注冊了一個帳號,這時帳號數(shù)據(jù)是只保存在中心數(shù)據(jù)庫上的。而當(dāng)我們要到一區(qū)去創(chuàng)建角色開始游戲的時候,在一區(qū)的帳號數(shù)據(jù)庫中并沒有我們的帳號數(shù)據(jù),所以,我們必須先到官網(wǎng)上做一次激活操作。這個激活的過程也就是從中心庫上把我們的帳號數(shù)據(jù)拷貝到所要到的大區(qū)帳號數(shù)據(jù)庫中。

轉(zhuǎn)載于:https://www.cnblogs.com/zhangjing0502/archive/2012/05/25/2518462.html

總結(jié)

以上是生活随笔為你收集整理的Mangos源码分析(2):服务器结构探讨之登录服的负载均衡的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。