單一世界的服務部署有很大的講究。我曾經在論壇上提到過大分布小集群的概念,就是跟伺服器部署有關係。我們知道,單一世界會遭遇很大的網路流量和使用者數,使用集群只能解決計算能力,卻解決不了網路流量。我們如果將所有的地圖集中放在中國某地的乙個集群中,那麼該集群將承受巨大的頻寬壓力。和http不同的是,單一世界是持續性的網路流量。
我們以中國區為例,我在各個省放置乙個集群,然後在北京、上海、廣州各放置乙個**集群。每個省的使用者直接連線到他們省的集群,那麼對**集群的壓力將大大降低,而網路流量同樣由省的集群分擔。當大部分人由省轉移到**集群所在地圖,這時候可以採取2個策略,策略一是連線依然留在省,但是,在**集**生任何變化,由**集群**給省集群,然後再留省集群**給終端。策略二是將連線轉接到**集群,資料同時脫離了省集群。我支援的策略是第一種,下面再詳細分析。
首先、我評估了下連線到區域網、省網、洲際網的ping速度,大家也可以自己策略量下。一般區域網的延時可以控制在幾毫秒以內,ping國內的ip可以控制幾十毫秒,ping美國的ip需要在幾百毫秒。顯然如果將連線轉移到**集群會導致網路延時劇增。
而直接連線到本地的ip,網路延時會少得多。
其次,我們可以在省集群和**集群之間假設高速網路,集群之間可以採取更加簡潔壓縮的資料傳輸方式,而且網路延時會更低。打個比方,如果終端直接連線到**集群,那麼可能是50毫秒的網路延時,如果通過省集群連線到中間集群,那麼可能是終端連線到省集群的10毫秒,加上省集群連線到**集群的10毫秒,加起來20毫秒。為什麼會這樣呢?因為,**和省之間網路通道我們是可控,可以投資為 他們增加更好的硬體裝置。
最後,當所有的使用者在**集**生戰鬥,那麼**集群的計算量完全可以由省集群進行分擔。他們之間的通訊量可以利用集群的高效能計算能力來壓縮和還原。我們減少**集群的通訊量,其他通訊量也可以直接在省集群之間來完成。大分布小集群就是這樣部署完成的。
當這種方式衍生到全球各個洲的時候,就完成全球單一世界架構的建設。
單一世界架構初探之登入管理
現在我們進入實質性的 階段,首先是登入管理。單點登入,意味著,所有的請求都將被乙個ip處理。而海量請求,意味著所有的登入管理都會在乙個ip的完成,天啦,如果到了10m那是什麼概念。即 使1m s的處理速度,也要10s才能完成乙個登入管理,那我估計,這個應用早被人罵了體無完膚,當然,魔獸世界可能例外,...
單一世界架構初探之動態分割槽
靜態分割槽,讓每個伺服器負責特定區域,技術上相對簡單 而動態分割槽實際上更接近於集群技術,按照負載自動調整區域,但技術更加複雜。上面所論述的計算遷移就是為了討論動態分割槽做的準備。在 魔獸世界中,暴風城和閃金鎮是2個典型,暴風城是個主城,人多 地形複雜,而閃金鎮周圍都是森林,人也多是匆匆過客,除了少...
單一世界架構初探之終端分布
在單一世界中,分布了眾多的終端,如果沒有利用終端計算能力,實在是浪費巨大的資源。有些人在 p2p模式,但我認為p2p仍然不是最好的利用方式。我們在前面曾經 過,在單一世界中,網路延時以及玩家眾多是很致命的影響因素,如果p2p的話,是很難保證客戶端之間的傳輸速度的,那麼在高實時的遊戲中,玩家體驗就比較...