一个典型的多进程MMO运行架构, 如下图所示:
pomelo框架的组成如图所示:
架构把游戏服务器做了抽象, 抽象成为两类:前端服务器和后端服务器, 如图:
前端服务器(frontend)的职责:
- 负责承载客户端请求的连接
- 维护session信息
- 把请求转发到后端
- 把后端需要广播的消息或响应发送到客户端
后端服务器(backend)的职责:
- 处理业务逻辑, 包括RPC和前端请求的逻辑
- 把消息推送回前端或者将对客户端请求的响应发送到前端服务器
服务器的抽象也同样可以比喻为鸭子, 服务器的对外接口只有两类, 一类是接收客户端的请求, 叫做handler, 一类是接收RPC请求, 叫做remote, handler和remote的行为决定了服务器长什么样子。 因此我们只要定义好handler和remote两类的行为, 就可以确定这个服务器的类型