【发布时间】:2019-03-12 19:05:57
【问题描述】:
我有一段非常简单的用 node.js 编写的代码,它在 Kubernetes 和 AWS 上运行。该应用程序只是执行 POST/GET 请求以从其他服务创建和获取数据。服务1-->服务2->服务3
Service1 获取 post 请求并调用 service2,service2 调用 postgres DB(使用 sequlize)并创建新行然后调用 service3,service3 从 DB 中获取数据并将响应返回给 service2,service2 将响应返回给 service1。
大多数情况下它都有效,但是在 4-5 次尝试 + 并发中一次,它掉线了,我得到了超时。问题是 service1 收到了响应(根据日志和网络跟踪),但似乎连接在服务之间的某个地方断开了,我得到了超时(ESOCKETTIMEDOUT)。
- 我尝试用 node-fetch 替换 request.js
- 我尝试过使用 NewRelic/Elastic APM
- 我尝试使用 node -prof 并使用 node
--prof-process对其进行分析,但没有任何结论。
Kubernetes 是否有可能断开我的连接?
【问题讨论】:
-
你的问题太宽泛了。您能否提供有关您的 Kubernetes 集群的任何描述?另外,您能否提供集群中安装的服务和部署的配置?
标签: node.js postgresql kubernetes