nodejs 服务一直在正常运行,某天突然发现内存指标不断上涨,排查后发现mongo写入未成功,但并未报错日志,多个进程相同的实现方式,其中一个进程报错重启,以下是错误信息,其他进程内存不断上涨,并且无法写入,mongodb@2.2.36
请问,这是否代表mongo组件出现某种问题导致链接异常,如何解决?
如果是简单的单线程模型是会有这种问题。但是现在成熟流行的框架 一般是这样设计:将网络IO处理逻辑和事件handler分开。比如java中netty框架,Netty 抽象出两组线程池,BossGroup 专门负责接收客 户端连接,WorkerGroup 专门负责网络读写操作。另外还有个处理消息的NioEventLoop 框架。每个NioEventLoop自带一个seletor网络处理和一个事件处理队列taskQueue。NioEventLoop 内部采用串行化设计,从消息的读取->解码->处理->编码->发送,始终由 IO线程 NioEventLoop 负责。