Gateway升级3.5.21 后,遇到启动 Gateway worker 报错: Address already in use 但 Gateway Worker 实际成功启动的情况: 这个应该是 bug 吧? 只有一个 Gateway Worker 启动了,其他Gateway worker因为端口冲突,全都没能启动
端口冲突了当然不能启动了。 配置nginx或者apache如果端口冲突了也是一样启动不了啊 把端口改成不冲突的不就好了
我再详细解释下:
从截图中可以看出,并不是 Gateway Worker 跟其他进程监听的端口冲突了,因为有一个 Gateway Worker 是成功的监听了端口,只是另外 9 个 Gateway Worker 因为监听端口失败导致的无法启动
我总共准备启动 15 个 worker,但是只成功启动了 1 个,其他的 Gateway worker 报错说 端口 Address already in use
那就把冲突的端口改了呗。。。
哥们你到底看明白问题没啊,这是 GatewayWorker 之间互相冲突啊,不是跟其他进程冲突啊。再说 GatewayWorker 端口是对外提供服务的,你改了外部物联网设备怎么办?
那就是你gatewaWorker之前配置的端口配置冲突了啊,一般是startPort端口范围冲突。 还有一种情况,比如你升级GatewayWorker没stop,然后就覆盖重新启动,老的进程还在,那就会和老的进程冲突。
http://doc.workerman.net/faq/workerman-start-fail.html 这个里给你找了下手册,这里有提到端口冲突怎么定位。
发帖之前已经试过文档里提的方法,并且诡异的是我重启了机器,再启动 Gateway 还是一样的报错。所以,现在的问题是启动多个 Gateway Worker 和 多个 Internal Gateway Worker居然有冲突,我现在把这两个 Worker 的 count 设置是 1 启动是没问题的,但是设置为大于 1 的时候,就会有冲突了
补充一下,可能是 Composer update 之前没有stop 所有的 worker
没stop肯定冲突啊
是,关键问题我现在已经 stop 了之后,再启动还是冲突,甚至机器都重启过了
所以,现在的问题是如何启动多个 Gateway Worker 和 多个 Internal Gateway Worker,我现在把这两个 Worker 的 count 设置是 1 启动是没问题的,但是设置为大于 1 的时候,就会有冲突了
并且,不是代码配置和 Workerman 的问题,同样的配置在测试环境是没有问题,顺利启动。
docker 运行不会存在问题
把所有gateway的strarPort设置为不同的端口,并且间隔大一些。比如 $gateway1->startPort = 2300; $gateway2->startProt = 3300; 间隔1000
你好,我这就把demo拿来跑出现了一样的问题,端口确定没占用
我碰到了同样的问题,单进程启动无报错信息,多进程会报错导致只会成功启动一个gatway进程,请问最后怎么解决的?
多进程启动肯定是没问题的,我很多项目都是多进程跑。贴报错和start_gateway.php代码看下呢
端口冲突了当然不能启动了。
配置nginx或者apache如果端口冲突了也是一样启动不了啊
把端口改成不冲突的不就好了
我再详细解释下:
从截图中可以看出,并不是 Gateway Worker 跟其他进程监听的端口冲突了,因为有一个 Gateway Worker 是成功的监听了端口,只是另外 9 个 Gateway Worker 因为监听端口失败导致的无法启动
我总共准备启动 15 个 worker,但是只成功启动了 1 个,其他的 Gateway worker 报错说 端口 Address already in use
那就把冲突的端口改了呗。。。
哥们你到底看明白问题没啊,这是 GatewayWorker 之间互相冲突啊,不是跟其他进程冲突啊。再说 GatewayWorker 端口是对外提供服务的,你改了外部物联网设备怎么办?
那就是你gatewaWorker之前配置的端口配置冲突了啊,一般是startPort端口范围冲突。
还有一种情况,比如你升级GatewayWorker没stop,然后就覆盖重新启动,老的进程还在,那就会和老的进程冲突。
http://doc.workerman.net/faq/workerman-start-fail.html 这个里给你找了下手册,这里有提到端口冲突怎么定位。
发帖之前已经试过文档里提的方法,并且诡异的是我重启了机器,再启动 Gateway 还是一样的报错。所以,现在的问题是启动多个 Gateway Worker 和 多个 Internal Gateway Worker居然有冲突,我现在把这两个 Worker 的 count 设置是 1 启动是没问题的,但是设置为大于 1 的时候,就会有冲突了
补充一下,可能是 Composer update 之前没有stop 所有的 worker
没stop肯定冲突啊
是,关键问题我现在已经 stop 了之后,再启动还是冲突,甚至机器都重启过了
所以,现在的问题是如何启动多个 Gateway Worker 和 多个 Internal Gateway Worker,我现在把这两个 Worker 的 count 设置是 1 启动是没问题的,但是设置为大于 1 的时候,就会有冲突了
并且,不是代码配置和 Workerman 的问题,同样的配置在测试环境是没有问题,顺利启动。
docker 运行不会存在问题
把所有gateway的strarPort设置为不同的端口,并且间隔大一些。比如
$gateway1->startPort = 2300;
$gateway2->startProt = 3300;
间隔1000
你好,我这就把demo拿来跑出现了一样的问题,端口确定没占用
我碰到了同样的问题,单进程启动无报错信息,多进程会报错导致只会成功启动一个gatway进程,请问最后怎么解决的?
多进程启动肯定是没问题的,我很多项目都是多进程跑。贴报错和start_gateway.php代码看下呢