服务器结构探讨 -- 最终的结构

原创 2007年09月12日 23:40:00

  如果我们就此打住,可能马上就会有人要嗤之以鼻了,就这点古董级的技术也敢出来现。好吧,我们还是把之前留下的问题拿出来解决掉吧。

  一般来说,当某一部分能力达不到我们的要求时,最简单的解决方法就是在此多投入一点资源。既然想要更多的连接数,那就再加一台网关服务器吧。新增加了网关服后需要在大区服上做相应的支持,或者再简单点,有一台主要的网关服,当其负载较高时,主动将新到达的连接重定向到其他网关服上。

  而对于游戏服来说,有一台还是多台网关服是没有什么区别的。每个代表客户端玩家的对象内部都保留一个代表其连接的对象,消息广播时要求每个玩家对象使用自己的连接对象发送数据即可,至于连接是在什么地方,那是完全透明的。当然,这只是一种简单的实现,也是普通使用的一种方案,如果后期想对消息广播做一些优化的话,那可能才需要多考虑一下。

  既然说到了优化,我们也稍稍考虑一下现在结构下可能采用的优化方案。

  首先是当前的Zone Server要做的事情太多了,以至于他都处理不了多少连接。这其中最消耗系统资源的当属生物的AI处理了,尤其是那些复杂的寻路算法,所以我们可以考虑把这部分AI逻辑独立出来,由一台单独的AI服务器来承担。

  然后,我们可以试着把一些与地图数据无关的公共逻辑放到Master Server上去实现,这样Zone Server上只保留了与地图数据紧密相关的逻辑,如生物管理,玩家移动和状态更新等。

  还有聊天处理逻辑,这部分与游戏逻辑没有任何关联,我们也完全可以将其独立出来,放到一台单独的聊天服务器上去实现。

  最后是数据库了,为了减轻数据库的压力,提高数据请求的响应速度,我们可以在数据库之前建立一个数据库缓存服务器,将一些常用数据缓存在此,服务器与数据库的通信都要通过这台服务器进行代理。缓存的数据会定时的写入到后台数据库中。

  好了,做完这些优化我们的服务器结构大体也就定的差不多了,暂且也不再继续深入,更细化的内容等到各个部分实现的时候再探讨。

  好比我们去看一场晚会,舞台上演员们按着预定的节目单有序地上演着,但这就是整场晚会的全部吗?显然不止,在幕后还有太多太多的人在忙碌着,甚至在晚会前和晚会后都有。我们的游戏服务器也如此。

  在之前描述的部分就如同舞台上的演员,是我们能直接看到的,幕后的工作人员我们也来认识一下。

  现实中有警察来维护秩序,游戏中也如此,这就是我们常说的GM。GM可以采用跟普通玩家一样的拉入方式来进入游戏,当然权限会比普通玩家高一些,也可以提供一台GM服务器专门用来处理GM命令,这样可以有更高的安全性,GM服一般接在中心服务器上。

  在以时间收费的游戏中,我们还需要一台计费的服务器,这台服务器一般接在网关服务器上,注册玩家登录和退出事件以记录玩家的游戏时间。

  任何为用户提供服务的地方都会有日志记录,游戏服务器当然也不例外。从记录玩家登录的时间,地址,机器信息到游戏过程中的每一项操作都可以作为日志记录下来,以备查错及数据挖掘用。至于搜集玩家机器资料所涉及到的法律问题不是我们该考虑的。

  差不多就这么多了吧,接下来我们会按照这个大致的结构来详细讨论各部分的实现。 

服务器结构探讨(5) -- 最终的结构

如果我们就此打住,可能马上就会有人要嗤之以鼻了,就这点古董级的技术也敢出来现。好吧,我们还是把之前留下的问题拿出来解决掉吧。  一般来说,当某一部分能力达不到我们的要求时,最简单的解决方法就是在此多投...
  • u011686361
  • u011686361
  • 2015年09月10日 12:01
  • 276

Mangos源码分析(5):服务器结构探讨之最终的结构

如果我们就此打住,可能马上就会有人要嗤之以鼻了,就这点古董级的技术也敢出来现。好吧,我们还是把之前留下的问题拿出来解决掉吧。    一般来说,当某一部分能力达不到我们的要求时,最简单的解决方法就...
  • qq744886227
  • qq744886227
  • 2017年11月09日 15:57
  • 192

服务器结构探讨 -- 最简单的结构

  所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。所以,结构本无所谓正确与错误;当然,优秀的结构更有助于系统的搭建,对系统的可扩展性及可维护性也有更大的帮助。  好的结构不...
  • lfhfut
  • lfhfut
  • 2007年09月09日 23:04
  • 3649

服务器结构探讨

有关游戏开发:游戏开发始终是个小项目,另外由于开发时间的限制,软件工程的思想和方法在游戏开发领域并不怎么受欢迎。从游戏开发团队的规模也能看出,基本上只能算小开发团队,有些工作室性质的,那就更简单了。 ...
  • xiaodan007
  • xiaodan007
  • 2014年05月01日 03:07
  • 790

ARP包结构解析(转)

    Ethernet II即DIX 2.0,是Xerox与DEC、Intel在1982年制定的以太网标准帧格式,Cisco名称为:ARPA。一个这样的以太网数据帧由以下几部分组成:1)前导字符,在...
  • chengfangquan
  • chengfangquan
  • 2008年07月22日 18:38
  • 1965

服务器结构探讨(1) -- 开篇

关于服务器技术的文章不怎么好找,做个备忘 转载自  http://bbs.gameres.com/showthread.asp?threadid=93775     有段时间没...
  • limiko
  • limiko
  • 2011年10月09日 11:57
  • 476

服务器结构探讨 -- 一点杂谈

  再强调一下,服务器结构本无所谓好坏,只有是否适合自己。我们在前面探讨了一些在现在的游戏中见到过的结构,并尽我所知地分析了各自存在的一些问题和可以做的一些改进,希望其中没有谬误,如果能给大家也带来些...
  • lfhfut
  • lfhfut
  • 2007年09月13日 08:33
  • 2925

Mangos源码分析(1):服务器结构探讨之最简单的结构

好的结构不是一蹴而就的,而且每个设计者心中的那把尺都不相同,所以这个优秀结构的定义也就没有定论。在这里,我们不打算对现有游戏结构做评价,而是试着从头开始搭建一个我们需要的MMOG结构。  对于一个最简...
  • u011686361
  • u011686361
  • 2015年09月10日 11:48
  • 348

2. 顺序编程

1. 变量 1.1 变量声明 var v1 intvar v2 stringvar v3 [10] int //数组var v4 [] int //数组切片var v5 struct{ f ...
  • kutim
  • kutim
  • 2015年10月31日 10:52
  • 219

服务器结构探讨 -- 登录服的负载均衡

  回想一下我们在玩wow时的操作流程:运行wow.exe进入游戏后,首先就会要求我们输入用户名和密码进行验证,验证成功后才会出来游戏世界列表,之后是排队进入游戏世界,开始游戏...  可以看到跟前面...
  • lfhfut
  • lfhfut
  • 2007年09月10日 00:12
  • 3639
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:服务器结构探讨 -- 最终的结构
举报原因:
原因补充:

(最多只允许输入30个字)