Gateway Worker进程内存不断上涨

使用的GatewayWorker框架, 目前碰到的情况是BusinessWorker进程跑一段时间后,内存一直在上涨,得定期重启BusinessWorker进程, 客户端使用WebSocket长连接,目前客户端在2500左右,基本上7 x 24时在线(硬件), Worker进程情况如图1:   Events没有复杂的逻辑,基本上只是在维持心跳: class Events { public static fu...

JoeZing 发表与 2019-08-28 3068 浏览 5 回答
【GatewayWorker】如何优雅地平滑迁移Register?

由于前期架构设计问题导致服务器资源浪费,现在需要缩减资源, 使用的GatewayWorker框架,分部署集群部署,但只有一个Register, 目前需要将Register从A服务器迁移至B服务器,又不能中断在线的客户端, 是否有合适的方式平滑重启相关服务又不影响在线的客户端? 暂时能想到的就是新起一个Register和新的Gateway集群,让客户端转移至新的Gateway, 同时业务逻辑需要做很大调整,下发消息都需...

JoeZing 发表与 2019-08-07 1770 浏览 1 回答
特殊网络环境下部署Gateway无法启动

1,Gateway、Worker、Register都在局域网中; 2,局域网中有台路由与外界互通; 3,客户端与客户项目均在外网,需要与局域网的服务链接;   因为项目所处的网络环境不是直接在公网上,导致外网Api接口无法将客户端获取的client_id解析成Gateway所在的公网地址,也尝试将gateway的lan_ip改为公网地址,但公网IP并不属于gateway所在服务器,也无法启动;   所有外网至局域网的...

JoeZing 发表与 2019-03-25 3056 浏览 1 回答
如何在onWebSocketConnect回调中,获取client_id?

需要在建立连接时根据client_id做一些业务处理,跟着源码,也打印了整个connection,没发现相关数据,在Gateway类中貌似是没办法获取client_id的?...

JoeZing 发表与 2018-03-03 5441 浏览 4 回答
GatewayWorker集群,Woker服务器产生大量TIME_WAIT?

如题,Register、Worker、Gateway都分别部署了,客户端数不超过4000, 在没有修改内核的情况下,通过netastat 查看 Worker服务器,连接数达到了8万多,大量的TIME_WAIT链接, Worker没有做复杂的逻辑,只是实现了心跳包,以及通过GatewayClient客户端,往其它的业务发送数据, 请问下,大量的TIME_WAIT,有什么排查的方法或诱因吗?...

JoeZing 发表与 2017-11-28 3403 浏览 3 回答
event-loop的区别?

目前发现有几个环境的event-loop不一样,请问下有什么区别吗? 一个是:event, 一个是 \Workerman\Events\Event 另一个是:\Workerman\Events\React\ExtEventLoop 还有一个是:select 这个就不说了, 确实其中有一台装了ReactPHP扩展,有什么区别吗?...

JoeZing 发表与 2017-08-21 3729 浏览 1 回答
registerAddress端口号串了?

解决了这个问题后 http://wenda.workerman.net/?/question/2054,这几天系统一直有个异常,项目中会往多个ip发送消息, ip1: 111.111.111.111:1200 ip2: 222.222.222.222:1300, 神奇的是,报的异常是: ErrorException: stream_socket_client(): unable to connect to tcp:/...

JoeZing 发表与 2017-08-02 2172 浏览 1 回答
如何在同个项目往多个不通的$registerAddress发送消息?

目前有多个使用Gateway的项目,这几个项目都是通过自己开发的中间件来互相转发消息,今晚发现,使用GatewatClient时,在同一个中间件同时发送消息给多个项目时(也就是有多个注册中心地址$registerAddress),始终只能发送到第一个$registerAddress,大致看了下源码,貌似是 getAllGatewayAddressesFromRegister 这个方法在作怪?有个临时的静态变量 $ad...

JoeZing 发表与 2017-07-21 3385 浏览 1 回答
请问如何在gateway中的onConnect或onWebSocketConnect中获取client_id?

能否在客户端连接时获取到client_id?而不是在Events中获得。...

JoeZing 发表与 2017-06-24 2796 浏览 1 回答
心跳包设置pingNotResponseLimit后,客户端会断开

客户端与Gateway进行websocket长连接的情况下, 设置了pingInterval=30,pingNotResponseLimit=0, 这种情况下,客户端会稳定连接着, 但如果设置了pingNotResponseLimit > 0,等于1至等于5都试过, 就会在 30 * pingNotResponseLimit时断开链接; 防火墙是关着的,所以不会受防火墙的影响,本以为可能是服务器环境问题, 后来...

JoeZing 发表与 2017-05-25 7449 浏览 4 回答
Gateway进程中的connections数一直在上涨,但实际上没有新的客户端加进来。

做了集群,Gateway和Register是在同一台服务器上,BuinessWorker单独一台服务器,都是局域网, Gateway起了2个进程, BuinessWorker起了8个进程, 我们的客户端数量是可数的,也就2千不到,但启动服务后,status 中的 connections一直在慢慢增长, 于是我在Gateway服务中onWebSocketConnect写了日志看是否是客户端的问题导致的重复连接,发现并没...

JoeZing 发表与 2017-05-25 3850 浏览 3 回答
最新版的为什么没有生成workerman.log和pid文件??

php start.php start php start.php start -d 在Events.php的onConnect也有内容输出,再者故意弄了点异常报错,也没有产生日志,请问是什么原因?...

JoeZing 发表与 2017-05-23 4378 浏览 2 回答
Gateway为什么只有一个客户端连接的情况下connections不止一个

1,如题,测试时,只有一个客户端链接,但是connections不止1个,这是为什么? 2,客户端多次连接时,会有多个connections,假设是10个client_id,后台Gateway::closeClient($client_id); 关闭这些client_id后,连接数connections还是不变,这是为什么?...

JoeZing 发表与 2017-02-09 3463 浏览 1 回答
请问下异步Mysql组件适用于GatewayWorker吗?

看到升级了workerman,react/mysql能否用在gatewayworker中?...

JoeZing 发表与 2017-01-18 3161 浏览 1 回答
多个Application的情况下,如何关闭或重启其中某一个App

/Applications /Applications/App1/start_app.php /Applications/App2/start_app.php ... 启动和关闭的操作都在根目录下的start.php,如何细化到每个App?...

JoeZing 发表与 2017-01-09 2731 浏览 2 回答
为什么Gateway会主动关闭客户端?

这是我的配置: 'count' => 10, //进程数 'startPort' => 2800, //开始端口 'pingInterval' => 60, //心跳包间隔时间 'pingNotResponseLimit' => 3, 'pingData' => '{"action":"ping"...

JoeZing 发表与 2017-01-05 5726 浏览 7 回答
为什么关闭连接closeClient和unbindUid后,还能收到心跳包.

如题,分别执行了closeClient,unbindUid后,客户端还是能收到心跳包?...

JoeZing 发表与 2016-09-19 3032 浏览 1 回答
断线重连的疑惑

Gateway客户端在失去链接后会有重连机制,疑惑来了, 每当客户端链接到Gateway后,Gateway会给客户端分配一个client_id, 如果客户端失去链接,马上建立链接后,我看到Gateway是重新分配了一个新的client_id, 但可能因为手册提到的“在极端情况下断开,无法快速感知”,导致旧的client_id还在线, 奇怪的是,Gateway还可以通过旧的client_id来发送消息,这是我的疑惑。 ...

JoeZing 发表与 2016-09-09 5468 浏览 1 回答
如何在多个GatewayWorker间互发消息?

本来有个业务放在Applications/App1下, 现在要做个消息队列,单独开了个GatewayWorker,为App2, 但客户端连接的是App1的Gateway, 在App2中处理消息队列时,如何发消息给App1中的某个客户端?...

JoeZing 发表与 2016-07-31 4613 浏览 4 回答
定时发心跳包问题

// 心跳间隔 $gateway->pingInterval = 20; // 心跳无回应次数 $gateway->pingNotResponseLimit = 0; start_gateway中设置了20秒发一次心跳包,但客户端基本都是40秒左右才收到心跳包?...

JoeZing 发表与 2016-07-28 8324 浏览 1 回答

JoeZing

1697
积分
0
获赞数
0
粉丝数
2016-07-12 加入
🔝