项目上用的im是基于netty开发的,已经运行了1年多时间,一切正常。
最近需要在其它项目上再部署一套,使用的百度云ubuntu18.04,目前有2台服务器,102, 105。其中,102有公网ip,并且开通了xxxx8端口,105没有公网权限。只能通过102访问到105.
im的socket的服务部署在105上,通过102上的nginx 做socket转发。结构如图
问题如下:
调试过程中,使用app发消息,im服务器不能快速接收到消息,app输入如图:
连续发送,y, 123, 456, 789
105上的im服务log显示,im服务器的socket服务并不是马上接收到了y, 123, 456, 789这4条消息。而是接收到消息y之后,等待一段时间app的连接超时后接收到123,再等待一段时间连接超时后接收到456,再等待一段时间超时后接收到789。log如下(这是个有点长的log):
看日志不像是socket转发的问题,是在处理postJson的时候http请求超时,从而造成了阻塞。
我觉得你说的非常有道理!!!
正所谓一语点醒梦中人。。。