基于netty的socket-io的方式做一个客户端和服务端实时通讯的功能,当我们的系统重新部署之后,原先保持的连接肯定都断开-->重新连接服务端,那么服务端肯定有收到大量的连接请求,服务端又刚刚启动;所以有以下两个问题:
1.socket-io 基于普通的服务器最多能连接多少?
2.socket-io针对服务部署后客户端瞬时大量重新连接应该怎么处理?
3.有神没有什么预热的方式,缓解系统的一部分压力,防止系统宕机崩溃?
希望各位能够帮忙。
基于netty的socket-io的方式做一个客户端和服务端实时通讯的功能,当我们的系统重新部署之后,原先保持的连接肯定都断开-->重新连接服务端,那么服务端肯定有收到大量的连接请求,服务端又刚刚启动;所以有以下两个问题:
1.socket-io 基于普通的服务器最多能连接多少?
2.socket-io针对服务部署后客户端瞬时大量重新连接应该怎么处理?
3.有神没有什么预热的方式,缓解系统的一部分压力,防止系统宕机崩溃?
希望各位能够帮忙。
用netty做过服务器,socket-io没怎么研究过,从netty的角度出发,第一设点置SO_BACKLOG参数和Linux内核somaxconn值尽量的大,这两个值主要限制连接请求队列大小,如果不大你瞬时进来很多请求,一旦队列满了后面的请求会被拒绝掉。第二点,在客户端重连机制中修改如果第一次重连失败,让他随即等待几秒,比如重连次数3次,每次多等待1-3秒直到成功。保证连接不瞬时冲向服务器。第三点如果真的客户端太多了,可以再发起请求前加个缓存机制。比如redis设置一个list,list长度控制在1000,客户端请求连接时,先判断list长度是否超过1000,没超过添加一个值(这个过程要考虑并发问题),添加值成功立即发起连接请求,连接成功后删除llist中自己添加的数据。但个人感觉用netty做的框架新能都很好的,正常不需要做第三点。