当前位置:网站首页>grpc系列3-自定义端镜像GOAWAY with error code ENHANCE_YOUR_CALM and debug data equal to “too_many_pings“
grpc系列3-自定义端镜像GOAWAY with error code ENHANCE_YOUR_CALM and debug data equal to “too_many_pings“
2022-08-08 23:20:00 【愚昧之山绝望之谷开悟之坡】
客户端问题
E0806 11:12:22.190935590 29 chttp2_transport.cc:1113] Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug data equal to "too_many_pings"
参考
探针官方必须配置参数解释:https://grpc.github.io/grpc/core/md_doc_keepalive.html
所有配置参数表格:https://github.com/grpc/grpc/blob/v1.46.x/include/grpc/impl/codegen/grpc_types.h
解决方案
Why am I receiving a GOAWAY with error code ENHANCE_YOUR_CALM?
A server sends a GOAWAY with ENHANCE_YOUR_CALM if the client sends too many misbehaving pings as described in A8-client-side-keepalive.md. Some scenarios where this can happen are -
if a server has GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS set to false while the client has set this to true resulting in keepalive pings being sent even when there is no call in flight.
if the client's GRPC_ARG_KEEPALIVE_TIME_MS setting is lower than the server's GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS.
服务端还需要配置这两个参数
On the server-side, the following additional channel arguments need to be configured -
GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS
If there are no data/header frames being sent on the transport, this channel argument on the server side controls the minimum time (in milliseconds) that gRPC Core would expect between receiving successive pings. If the time between successive pings is less that than this time, then the ping will be considered a bad ping from the peer. Such a ping counts as a ‘ping strike’. On the client side, this does not have any effect.
GRPC_ARG_HTTP2_MAX_PING_STRIKES
This arg controls the maximum number of bad pings that the server will tolerate before sending an HTTP2 GOAWAY frame and closing the transport. Setting it to 0 allows the server to accept any number of bad pings.
由于 GRPC_ARG_KEEPALIVE_TIME_MS配置成了200000ms=200s,避免被识别成错误的探针,需要将
GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS(默认是300s)设置成小于200s,可以配置成150s
边栏推荐
- tp5用cache缓存,存储手机短信验证码
- JSDay2-多个数组的交集
- [YOLOv5] 6.0 environment construction (updated from time to time)
- Kubernetes 资源核心原理
- (2022杭电多校五)1010-Bragging Dice (思维)
- 可以在易方达基金上买基金吗,安全吗
- Excuse me: is it safe to pay treasure to buy fund on
- [Pytorch] Study Notes (1)
- 微信小程序错误 undefined Expecting ‘STRING‘,‘NUMBER‘,‘NULL‘,‘TRUE‘,‘FALSE‘,‘{‘,‘[‘, got ]解决方案
- (2022杭电多校六)1012-Loop(单调栈+思维)
猜你喜欢
随机推荐
[Pytorch] Study Notes (1)
makefile automatically compiles C files in directories and subdirectories
RecyclerView的多选模式
微信小程序开发一些函数使用方法
加载 已训练模型 张量的 几种方法
Casbin 进行权限控制验证
主从延迟原因及解决方案
2022牛客多校六 M-Z-Game on grid(动态规划)
Binary tree level traversal and examples
makefile 自动编译 目录和子目录的 C文件
Hi3516 使用 wifi模块
(2022牛客多校五)H-Cutting Papers(签到)
Golang gorm 数据库连接,迁移,索引
JS中的原型与原型链
如何搭建一套自己公司的知识共享平台
Oracle 锁表,如何解锁
(2022杭电多校三)1002-Boss Rush(状压DP+二分)
PMP考点有哪些啊?
Learning experience of bp neural network
Porting ucos2 code from stm32 to GD32