@FeignClient 注解配置项
public @interface FeignClient {
// 和 value 互为别名,标示要调用哪个服务,要和 nacos 上面的服务名一致
@AliasFor("name")
String value() default "";
// 当服务提供者的接口太多了,调用方想分为多个 FeignClient,就要指定不同的 contextId,一般不配置
String contextId() default "";
@AliasFor("value")
String name() default "";
String[] qualifiers() default {};
// 表示要调用的地址,优先级高于 name,一般用于调试,写死一个地址(ip+端口)
String url() default "";
// 如果调用的接口 404,true:浏览器也响应 404;false:浏览器响应 500(看程序日志才会知道是 404)
boolean dismiss404() default false;
// Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
Class<?>[] configuration() default {};
// 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
Class<?> fallback() default void.class;
// 工厂类,用于生成 fallback 类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
Class<?> fallbackFactory() default void.class;
// 定义当前 FeignClient 访问接口时的统一前缀
// 最终的全路径必须和服务提供方的 url 完全一致,如果这里加了 path,服务提供方没有这个,就会报 404
String path() default "";
boolean primary() default true;
}
超时配置
这个太复杂了,不同的场景配置不一样
feign、openfeign、httpclient、httpclient5、ok-http、ribbon、hystrix
连接超时、读取超时
只能看自己用的什么版本,什么组件