网易说pomelo很容易扩容,那么就来看看到底是不是这样?
前面2篇文章里面,只有一个前台connector和后台服务,那么当一个前台服务和一个后台服务无法支撑大量客户端的时候该怎么办呢?
显然需要对服务器进行扩容。
前面单个服务器的框架大概就是这样的:
所有的客户端都连接到一个connector,然后这个connector就把所有的请求转发给一个后台服务chat。
现在来尝试先扩展前台connector。
扩展前台connector
修改配置文件,增加2个connector,并且新增一个gate,如:(servers.json)
"gate":[
{"id": "gate-server-1", "host": "115.28.53.90", "port": 3200,"clientPort": 3020, "frontend": true}
],
"connector": [
{"id": "connector-server-1", "host": "115.28.53.90", "port": 3150, "clientPort": 3010, "frontend": true},
{"id": "connector-server-2", "host": "115.28.53.90", "clientPort": 3011, "frontend": true},
{"id": "connector-server-3", "host": "115.28.53.90", "clientPort": 3012, "frontend": true}
],
因为新增了一个前台服务器,所以,还得改一下adminServer.json
[
{
"type":"gate",
"token":"agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rm1"
},
{
"type": "connector",
"token": "agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rxn"
},
{
"type":"chat",
"token":"agarxhqb98rpajloaxn34ga8xrunpagkjwlaw3ruxnpaagl29w4rmm"
}
]
最后还要在game-server/app.js里面增加几行代码 (一开始没注意到,所以,客户端老是连不上gate,最后发现这里也要改)
var pomelo = require('pomelo');
/**
* Init app for client.
*/
var app = pomelo.createApp();
app.set('name', 'HelloWorld');
// app configuration
app.configure('production|development', 'connector', function(){
app.set('connectorConfig',
{
connector : pomelo.connectors.hybridconnector,
heartbeat : 3,
useDict : true,
useProtobuf