金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks

摘自: 多人在线游戏服务器构架

http://wenku.baidu.com/view/aac987eae009581b6bd9eb8a.html


MMORPG负载均衡机制


1.静态分布玩家到服务器

平均分配玩家给每个Server,使每个Server有相同数量的玩家。这种方法的优点是算法简单,但玩家在地图上移动,因此过一段时间,最差的情 况下,Server之间可能有大量的网络流量,因为当玩家在完成一个动作后,所有的Server必须获得另一个Server的玩家数据,而其附近的玩家皆 在不同的Server上,如此依赖,每个玩家的一个动作需要传送消息到不同的Server上,将造成communication的极大负担。


2.静态分配地图片段到服务器

利用空间切割的方式将虚拟世界切割成和Server同等数量的地图片段,再将这些地图片段分配给每一个Server负责,然后再有一个 Dispacher Server负责将每一个玩家分配到所对应的Server上去,但由于玩家会在地图上移动,因此时间一久,在最差情况下,玩家可能都到同一个Server 的地图片段上,这样当初的负载平衡就完全被破坏了。


3.动态分配地图片段到服务器

静态分配地图片段至每个Server虽然可以减少Server间网络的频宽和负载,但必须使玩家在正确的分布地图上,玩家的位置是由玩家所操作的, 因此会发生不可预料的问题,为了克服这类问题,将地图分切成更小的片段,然后动态的分配地图片段至Server上是需要的。然而这种方法要有效率,其关键 在于如何切割地图片段,要切成何种几何形状的,该切成多少片段?传统的方法大都是切成正方形方块,切割数根据实际情况或模拟后作适当的处理。


posted on 2011-07-14 12:06 金庆 阅读(650) 评论(0)  编辑 收藏 引用 所属分类: 2. 网游开发

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理