我们正在使用Node.js、Docker Swarm和GRPC来部署多个微服务。我们的一个微服务是一个GRPC服务,它为我们的前端处理websockets。但是,当我们从另一个微服务(我们的后端服务)对此服务进行GRPC调用时,我们会收到一个错误,显示“已取消:随机取消呼叫。我们已尝试调试此问题,但无法找到根本原因。
以下是我们设置的一些细节:
- 我们使用Docker Swarm来管理我们的微服务。
- 我们有每个服务的一个副本,我们之前有多个副本,但我们减少了它,希望解决这个问题。
- 我们的前端使用套接字与服务通信。
- 我们从另一个微服务调用GRPC,该微服务也在Docker Swarm上运行。
我们使用4 vCpu和16gb ram的GCP VM,并在其上部署docker swarm。
我们在调试这个随机发生的问题时遇到了麻烦,希望得到任何帮助。
以下是我们已经尝试过的:
- 我们检查了GRPC服务的日志,但找不到任何相关的错误消息。
- 我们尝试部署GRPC服务的多个副本,但这也无济于事。
1条答案
按热度按时间zujrkrfu1#
“Call cancelled”错误表示客户端收到了该请求的取消。如果调用了
forceShutdown
方法,Node.js gRPC服务器可以在活动请求上发送取消。否则,很有可能取消来自您正在使用的负载均衡器,该负载均衡器用于跨服务的副本分发请求/连接。