feign 报错 Connection reset executing POST

feign 连接异常:

feign.RetryableException: Connection reset executing POST

替换 feign的 client :

Feign在默认情况下使用的是JDK原生的 URLConnection 发送HTTP请求,没有连接池。性能较差。
每次Http请求,需要三次握手去建立连接,完成后再断开连接。性能损耗是比较大的。
可以尝试替换成 httpclient 或者 okhttp,就会使用连接池,还可以调整最大连接数。

详情见: https://blog.csdn.net/sinat_32502451/article/details/141234224

添加重试:

由于是在 使用 feign 进行网络连接时,发生了异常导致出错,因此也可以尝试 重试。

在 feign 的接口,或者是其他服务的 接口,添加重试的注解,

注意:由于 Spring的 @Retryable注解 的底层使用了AOP,如果是调用同一个类里带有@Retryable注解的方法,注解不会生效,
因此要放在不同的类里面。

@Retryable(value = {Exception.class}, maxAttempts = 3, backoff = @Backoff(delay = 1000, multiplier = 1.5))
Response<ResponseDto> getInfo(@RequestBody RequestDto requestDto);

posted on 2024-08-16 00:06  乐之者v  阅读(9)  评论(0编辑  收藏  举报

导航