关于网游服务器的分类和布局的问题是在网络游戏中比较关键的部分, 首先我们讨论网络游戏服务器的分类问题: 一般情况下游戏服务器分为: 登陆服务器, 网关服务器, 游戏服务器和数据库服务器四类, 有的服务器可能是多台并存的,如游戏服务器, 其中游戏服务器包括: 地图服务器和逻辑服务器.
下面这个图描述了网关服务器和其他服务器之间的关系:
网关服务器的功能是将: 游戏服务器, 客户端和数据库服务器之间的消息进行转发, 所以它负责管理客户端的连接和服务端的连接, 并转发他们之间的消息, 同时他还连接到数据库服务器上,等需要数据读取是对数据库进行操作,并转发给相应的请求者. (其实在对数据库的连接这个问题上,有游戏服务器来连接的,网关服务只负责转发和简单的逻辑处理)。
我们现在来讨论下网关服务器是怎么实现的:网关服务器要管理两个事情,一个是游戏服务器的连接,另一个玩家的连接。其实对于网关服务器而言,这两个种类型的连接差别,并不是很大,可以用一个网路模型来处理收到的消息,并将其转发给相应的接受者。
游戏服务器中的地图服务器:地图服务器相对于网关服务器而言,它更像是一个客户端,它在收到消息的时候处理消息,并将消息结果返回给网关,网关把消息转给相应的连接。只是说因为地图服务器相对来说是处理那些长时间连接,需要不断处理的逻辑的,如用户的移动,状态,补给等,需要实时的消息处理。
逻辑服务器的功能是实现如打怪,组队等一些,不经常交互的逻辑的。其实对于一组游戏服务器而言,大量的聊天信息也是很消耗系统资源的,有时候要单独建立一个聊天服务器。
数据库服务器基本上是存放数据库的,游戏服务器,逻辑服务器,在需要是读取数据,进行逻辑处理。