psylambda

Results 3 comments of psylambda

> 可以开启一下熔断功能,时间就变成可控的了 熔断功能确实可以控制断开连接的时间, 但参数太多太复杂了。tcp_user_timeout相对而言容易理解很多。

场景是情况1, server端异常宕机/断电, client端的tcp包会一直重传, 且重传间隔越来越长, 如下图所示。 ![image](https://user-images.githubusercontent.com/36839348/120583745-63ca3480-c461-11eb-9922-991084dd4301.png) 在上图的例子中, client端在231秒和352秒分别发了一个重传包。 如果server端恰好在232秒恢复正常, 那么client端并不会立刻感知到, 而是在352秒时刻发重传包的时候才感知到, 并重新建tcp连接, 之后的请求才能正常被server端处理。 这意味着232秒到352秒时间内, 虽然server端恢复了, 但是client端的所有请求都持续报错。 * 对于grpc, 可以通过配置tcp_user_timeout, 来控制重传时间, 避免重传间隔过长导致server端恢复后, client端还要较长时间才能感知到 * 对于brpc, 现在有办法避免这个问题么? @zyearn