【发布时间】:2025-12-24 04:50:10
【问题描述】:
我对 (g)rpc 有点陌生,我不太了解这个概念。我们在 Kubernetes 集群中有一组 NodeJS 服务器,它们通过 grpc 相互通信。 rpc 接口在客户端 upstart 上针对每个服务器设置。
我们最近发现,在重新启动服务器后,其客户端会失去与该服务器的连接。也就是说,在该服务器重新启动后,对服务器的先前工作的 rpc 调用不再工作。直到我们以正确的顺序重新启动服务器,它才会再次开始运行。
我想通过一个地址(主机+端口)告诉客户“这是一个你可以调用的程序”。并且在调用过程时,地址被调用,在服务器上处理并返回。如果它像这样工作,客户端不会关心服务器是否在 rpc 调用之间重新启动了 0 次或 100 次。
但是根据上面对客户端 rpc 调用失败/超时的描述,似乎有一个类似套接字的连接,在两个部分都在运行时建立和维护连接。
它是如何工作的,我是否需要在我的客户端上对我的 rpc 服务器实施健康检查,以便在服务器重新启动时重新建立接口?
感谢您的宝贵时间。
【问题讨论】:
-
你使用的是什么版本的 gRPC?
-
您看到哪些错误让您认为是这种情况?有时 gRPC 会记录警告但仍能正常工作。请在问题中更具描述性和具体性,以便人们可以提供帮助。
标签: node.js kubernetes grpc