FeignClient自定义配置
FeignClient里如何进行重试(Retry)和超时(timeout)配置
FeigninClient的默认connectTimeout为10s,readTimeout为60。仅设置超时可能不会立即生效,因为默认重试次数为5次。 因此,如果想要快速失败,则必须同时自定义超时和重试的参数,并应确保反向代理。 例如,nginx的proxy_connect_timeout和proxy_read_timeout必须大于feign的配置才能生效。 否则,nginx的504网关超时仍然会被外部用户感知,并且无法实现回滚效果。
- 配置类
package cn.com.hopson.hopsonone.park.js.conf;
import feign.Request;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
@Configuration
public class FeignConfig {
/**
* 配置请求重试
*/
@Bean
public Retryer feignRetryer() {
return new Retryer.Default(200, TimeUnit.SECONDS.toMillis(10), 10);
}
/**
* 设置请求超时时间
* 默认
* public Options() {
* this(10 * 1000, 60 * 1000);
* }
*/
@Bean
Request.Options feignOptions() {
return new Request.Options(60 * 1000, 60 * 1000);
}
/**
* 打印请求日志
* <p>
* NONE: 不记录任何信息
* BASIE:仅记录请求方法,URL以及响应状态码和执行时间
* HEADERS:除了记录BASIE级别得信息之外,还会记录请求和响应得头信息
* FULL:记录所有请求与响应得明细,包括头信息,请求体,元数据等。
*
* @return
*/
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
- 注解指定配置文件
@FeignClient(name = "hopsonone-park-search", configuration = FeignConfig.class)
分类:
OpenFeign
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?