GRPC客户端在服务器规模上显示不可用的错误

发布于 2025-02-03 04:29:11 字数 207 浏览 4 评论 0原文

我有两个GRPC服务,可以使用ISTIO服务网格互相通信,并为所有服务提供了Envoy代理。

我们存在一个问题,即由于高负载而扩展服务器吊舱期间,客户在准备好后一段时间内就会抛出几个GRPC(主要是)/deadline_exceed/deadline_exceed/Uccessed/“取消”错误。 我根本看不到服务器吊舱中的任何CPU节流。

还有什么问题,我该如何调查?

I have two grpc services that communicate to each other using Istio service mesh and have envoy proxies for all the services.

We have an issue where during the scaling up of server pods due to high load, the client throws a few grpc UNAVAILABLE(mostly)/DEADLINE_EXCEEDED/CANCELLED errors for a while as soon as the new pod is ready.
I don't see any CPU throttling in server pods at all.

What else could be the issue and how can I investigate this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太阳男子 2025-02-10 04:29:11

没有具体状态消息,很难说出上述错误的原因。

为了减少不可用的方法,一种要求RPC等待for-Ready的方法: https://github.com/grpc/grpc/blob/master/master/doc/wait-for-ready.md.md 。此功能在所有主要的GRPC语言中都可用(有些可以将其重命名为fail-fast = false)。

deadline_exceeded是由您的应用程序或Envoy Config设置的超时引起的,您应该能够对其进行调整。

取消可能意味着:1。服务器正在输入优雅的关闭状态; 2。服务器被超载并拒绝新连接。

Without the concrete status message, it's hard to say what could be the cause of the errors mentioned above.

To reduce UNAVAILABLE, one way to ask the RPC to wait-for-ready: https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md. This feature is available in all major gRPC languages (some may rename it to fail-fast=false).

DEADLINE_EXCEEDED is caused by the timeout set by your application or Envoy config, you should be able to tune it.

CANCELLED could mean: 1. the server is entering a graceful shutdown state; 2. the server is overloaded and rejecting new connections.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文