当前是2台服务器,一个做为 Register服务(该服务器同时也运行Gateway进程和BusinessWorker进程),Register服务的端口为1238,gatewy 端口:2346,用的nginx 映射443 用在小程序,本机IP 172.17.178.205,可以正常启动并使用,小程序访问一切正常
当准备另分布式部署时,内网IP 172.17.178.206,启动的时候,register 服务就提示
Register auth timeout (172.17.178.206). See http://wiki.workerman.net/Error4 for detail
我看这个文档说有可能端口被占用了,但是这个 1238 端口是我随便写的一个
下面是 Register服务器的代码
start_gateway.php
// gateway 进程,这里使用Text协议,可以用telnet测试
$gateway = new Gateway("websocket://0.0.0.0:2346");
// gateway名称,status方便查看
$gateway->name = 'vip';
// gateway进程数
$gateway->count = 16;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '172.17.178.205';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 2900;
// 服务注册地址
$gateway->registerAddress = '172.17.178.205:1238';
// 心跳间隔
$gateway->pingInterval = 30;
$gateway->pingNotResponseLimit = 0;
start_register.php
// 自动加载类
require_once __DIR__ . '/../../vendor/autoload.php';
// register 必须是text协议
$register = new Register('text://172.17.178.205:1238');
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
start_businessworker.php
// 自动加载类
require_once __DIR__ . '/../../vendor/autoload.php';
// bussinessWorker 进程
$worker = new BusinessWorker();
// worker名称
$worker->name = 'YourAppBusinessWorker';
// bussinessWorker进程数量
$worker->count = 4;
// 服务注册地址
$worker->registerAddress = '172.17.178.205:1238';
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
以下是准备分布式部署的代码,只有2个文件,删除了start_register.php
start_gateway.php
// gateway 进程,这里使用Text协议,可以用telnet测试
$gateway = new Gateway("websocket://0.0.0.0:2346");
// gateway名称,status方便查看
$gateway->name = 'vip';
// gateway进程数
$gateway->count = 8;
// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '172.17.178.206';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口
$gateway->startPort = 2900;
// 服务注册地址
$gateway->registerAddress = '172.17.178.205:1238';
// 心跳间隔
$gateway->pingInterval = 30;
$gateway->pingNotResponseLimit = 0;
start_businessworker.php
// bussinessWorker 进程
$worker = new BusinessWorker();
// worker名称
$worker->name = 'YourAppBusinessWorker';
// bussinessWorker进程数量
$worker->count = 4;
// 服务注册地址
$worker->registerAddress = '172.17.178.205:1238';
// 如果不是在根目录启动,则运行runAll方法
if(!defined('GLOBAL_START'))
{
Worker::runAll();
}
报错里有url地址,里面有说明,已经解释的很详细,自己看下就知道了
这个文档看不了了 连接挂掉了 求解决方法啊