almostless

Results 5 comments of almostless

公司:深圳优依购互娱科技有限公司 地点:中国深圳 联系方式:[email protected] 业务场景:手游聚合SDK的api,ios个人签业务以及websocket通信

> socketio-server 有一个 redisNsq 的处理器 swow和高版本swoole原生支持phpredis,不需要采用mixphp的方案,自建tcp客户端连接redis了。 直接用redis还是比nsq方便。运维也不一定肯再建个nsq服务。我稍微更改了一下RedisAdapter,你看下是否有改进。 自我感觉,下面的RedisAdapter改进有如下优点: 1.不会导致连接池快速耗尽。在phpredis内部,subscribe后就陷入死循环了,即使从redis连接池获取一个链接,subscribe后也无法将链接归还 2.延长设置了 Redis::OPT_READ_TIMEOUT,避免subscribe后,60秒(默认值)没有获取到消息,就抛出警告后立即重连,再等下一个60秒。 private function phpRedisSubscribe() { // swow和高版本swoole原生支持phpredis,不需要采用mixphp的方案,自建tcp客户端连接redis了. // 直接使用 phpRedis 的发布订阅,会占用一个redis链接然后阻塞; // 如果链接在 \Redis::OPT_READ_TIMEOUT (默认60秒) 内没有收到消息,则会抛出 RedisException:read error xxxx $redis...

嗯,默认也能用,就是多开几个订阅redis连接池被占满了,调高连接池数量能解决此问题。 然后每创建一个subscribe,它每隔60秒有一个Redis::call 的warning,看着很烦,所以自己小改了一下

平滑重启是什么你搞懂没?是你想象的服务器重启,已有的tcp链接依然还在吗?这么基础的概念都没搞清楚,你转去Java或者任何其他语言,也实现不了你想要的“服务器重启,tcp链接不丢失,客户端不用重连”