摘自: 多人在線游戲服務器構架
http://wenku.baidu.com/view/aac987eae009581b6bd9eb8a.html
MMORPG負載均衡機制
1.靜態(tài)分布玩家到服務器
平均分配玩家給每個Server,使每個Server有相同數(shù)量的玩家。這種方法的優(yōu)點是算法簡單,但玩家在地圖上移動,因此過一段時間,最差的情 況下,Server之間可能有大量的網(wǎng)絡流量,因為當玩家在完成一個動作后,所有的Server必須獲得另一個Server的玩家數(shù)據(jù),而其附近的玩家皆 在不同的Server上,如此依賴,每個玩家的一個動作需要傳送消息到不同的Server上,將造成communication的極大負擔。
利用空間切割的方式將虛擬世界切割成和Server同等數(shù)量的地圖片段,再將這些地圖片段分配給每一個Server負責,然后再有一個 Dispacher Server負責將每一個玩家分配到所對應的Server上去,但由于玩家會在地圖上移動,因此時間一久,在最差情況下,玩家可能都到同一個Server 的地圖片段上,這樣當初的負載平衡就完全被破壞了。
靜態(tài)分配地圖片段至每個Server雖然可以減少Server間網(wǎng)絡的頻寬和負載,但必須使玩家在正確的分布地圖上,玩家的位置是由玩家所操作的, 因此會發(fā)生不可預料的問題,為了克服這類問題,將地圖分切成更小的片段,然后動態(tài)的分配地圖片段至Server上是需要的。然而這種方法要有效率,其關鍵 在于如何切割地圖片段,要切成何種幾何形狀的,該切成多少片段?傳統(tǒng)的方法大都是切成正方形方塊,切割數(shù)根據(jù)實際情況或模擬后作適當?shù)奶幚怼?/p>


