原文来自:http://blog.csdn.net/xufeng0991/article/details/45541185 尊重原创,转载请注明出处。
经过了一个周的时间,新项目的基本结构已经大体确定,拿来给大家分享。
一 基础概念
在说明手游服务器架构之前,一下几点须知。
1 我们的服务器集群分为前端服务器和后端服务器。
前端服务器:负责接收前端请求,实际上只有两个gate和connector;
后端服务器:负责后端服务器相互调用,如auth,area;
虽然在我们写路由的时间直接写的是area中handler下文件中的方法,
但是这是通过connector间接调用的,不要认为area是前端服务器。
2 对于每个单独的服务器,一般由三个可选的部分组成。
handler
这里面文件中的方法,前端可以通过路由调用;
handler中方法参数固定:function(msg,session,next)
msg为客户端要传递的参数,格式为json
session由pomelo自动传递
next(null,{route:msg.route}),null代表错误信息,没错误信息,就返回null
remote
这里面的方法是服务器之间相互调用的;
rpc调用传递的第一个参数session,主要用于计算出路由。
filter
在处理请求之后(beforeFilter)和之后(afterFilter)做一些处理。
3 数据共享domain
无论是handle还是remote,他们都只是提供接口,真正的逻辑处理是放在domain中的。
二 服务器架构
如下为我们新项目的服务器架构:
1 gate
链接gate服务器,返回connector服务器host和port;
2 connector
根据获得的host和port链接connector服务器;
在connector服务器中远程调用auth服务器认证用户;
认证成功之后绑定session,将用户加入到一个area服务器,返回登录结果。
3 auth
查询数据库,创建角色,查询角色等;
4 area
handler:提供前端请求接口
remote:提供后端请求接口
5 domain
分模块处理各个逻辑,如area模块保存当前area服务器中的玩家,entity保存用户对象信息等等。
代码就不上传了,想要的私聊我吧。