req icon indicating copy to clipboard operation
req copied to clipboard

使用 HTTP/2 时经常触发错误

Open shuqingzai opened this issue 1 year ago • 8 comments

在使用 HTTP/2 时,经常触发 http2: Transport received Server's graceful shutdown GOAWAY 错误,请问我该如何处理掉这个错误?

shuqingzai avatar Jul 31 '24 01:07 shuqingzai

应该是服务端不支持吧,改成强制使用HTTP1试试

xulz avatar Aug 08 '24 11:08 xulz

应该是服务端不支持吧,改成强制使用HTTP1试试

@xulz 那不是,成功访问的也有很多的,这是频率高的偶发事件,因为 req 有重试机制,它又成功了

shuqingzai avatar Aug 09 '24 01:08 shuqingzai

我也遇到了同样的问题,使用标准库的http client 请求就没有问题,换到req 上来 就会触发http2: Transport received Server's graceful shutdown GOAWAY 错误,尝试添加重试这个错误还是会被抛出来

rusherman avatar Aug 10 '24 08:08 rusherman

不设置EnableForceHTTP2 的情况下默认走的是OnlyCachedConn,链接用完了不会新建,这种情况会报上面的错误,设置了EnableForceHTTP2就好了

rusherman avatar Aug 13 '24 08:08 rusherman

不设置EnableForceHTTP2 的情况下默认走的是OnlyCachedConn,链接用完了不会新建,这种情况会报上面的错误,设置了EnableForceHTTP2就好了

@rusherman 强制 HTTP2 会对使用 HTTP1 有影响么?有些请求也不一定是 HTTP2 的,甚至不是 https

shuqingzai avatar Nov 25 '24 01:11 shuqingzai

@imroc 请问,是否有好的方式修正这个错误??

shuqingzai avatar Nov 25 '24 02:11 shuqingzai

@imroc 请问,是否有好的方式修正这个错误??

可以用 client.SetCommonRetryCount(n) 自动重试下。如果相同参数下,标准库没这个问题的话,得深入研究下了,欢迎大家来帮忙定位贡献下

imroc avatar Nov 25 '24 02:11 imroc

@imroc 请问,是否有好的方式修正这个错误??

可以用 client.SetCommonRetryCount(n) 自动重试下。如果相同参数下,标准库没这个问题的话,得深入研究下了,欢迎大家来帮忙定位贡献下

@imroc 是有设置自动重试,但是触发了系统错误 ,一些监控告警系统就会告警,会影响成功率

shuqingzai avatar Nov 25 '24 02:11 shuqingzai