egg 进程假死
发布于 5 年前 作者 Helovebai 3089 次浏览 来自 问答

如题 前端使用vue框架,用axios发送http请求,调用API层接口, API层使用egg框架,同样使用axios发送http请求,调用java服务端接口。 问题来了,当API层调用服务端接口时,如果时间较长,会出现egg node进程假死,agent也不会重新fork新进程。 API层axios设置timeout为6000。 查看alinode发现cpu占用率不高,内存占用也不高,排除cpu占用过高没法给master发送心跳导致进程假死。 不知道什么原因引起,望各路大神赐教。

5 回复

这种反馈是没法回答的,提供最小可复现仓库

@atian25 额,大概原因就是因为node层调用java接口, http请求超时,完了node进程就假死了…

猜「大概」是没用的。。。说明你的代码处理有问题,不提供代码,我们空对空交流没啥意义。

『如何向开源项目提交无法解答的问题』

补充一些,如果是单独的请求后端接口卡住,是肯定不会影响下一个请求的正常处理的,在没有代码的情况下有两种可能

  • java 服务本身卡住了,导致后续的 node 请求每一个都卡住,但是看起来就好像是 node 进程卡住了
  • node 触发了异常的类死循环(你要去在 alinode 上看对应业务进程(app worker)的 CPU 占用是不是有 100% 的)

看不出来,提供一个最小可复现的代码仓库

回到顶部