feign配置属性说明
时间: 2023-08-12 18:10:22 浏览: 47
Feign是一个声明式的HTTP客户端,可以让我们以简单的方式访问RESTful服务。在使用Feign时,我们可以通过配置Feign的属性来实现不同的功能。
以下是Feign常用的配置属性说明:
1. @FeignClient注解:用于标注一个Feign客户端的接口,可以指定服务名、URL、配置等属性。
2. url属性:指定调用的HTTP服务的URL地址,可以是一个完整的URL,也可以是一个协议、主机名和端口号的组合。
3. value属性:指定调用的服务名,可以是Eureka注册中心中的服务名,也可以是Ribbon负载均衡器中的服务名。
4. fallback属性:指定调用失败时的备用方案,可以是一个实现了Feign客户端接口的类。
5. fallbackFactory属性:指定调用失败时的备用方案工厂类,可以创建具有特定行为的fallback实例。
6. decode404属性:指定是否对HTTP 404响应进行解码。
7. configuration属性:指定Feign客户端的配置类,可以配置连接超时、读取超时、重试次数等属性。
8. loggerLevel属性:指定Feign客户端的日志级别,可以是NONE、BASIC、HEADERS、FULL四个级别。
相关问题
feign 配置熔断
在使用Feign进行服务之间的调用时,可以通过配置开启Hystrix的熔断功能。如果服务不可用或者超过访问时间,就会触发Hystrix的fallback回调函数。要开启熔断配置,需要在服务消费者的pom文件中添加Hystrix的依赖。然后创建Feign的实现类,实现Feign中的方法,并在Feign接口的@FeignClient注解中加上fallback属性,值是Feign实现类的字节码文件。在主启动类上加上@EnableHystrix注解来允许Hystrix的使用。在配置文件中设置开启熔断功能,可以通过feign.hystrix.enabled=true来开启Feign的熔断功能。\[1\]
Feign中的Hystrix配置如下:
```
feign:
hystrix:
enabled: true
okhttp:
enabled: true
httpclient:
enabled: false
client:
config:
default:
# 超时时间配置
connectTimeout: 10000
readTimeout: 10000
compression:
request:
enabled: true
response:
enabled: true
# Hystrix配置
hystrix:
command:
default:
execution:
isolation:
strategy: SEMAPHORE
thread:
timeoutInMilliseconds: 60000
shareSecurityContext: true
```
以上是Feign中Hystrix的配置,可以根据实际需求进行相应的调整。\[3\]
#### 引用[.reference_title]
- *1* *3* [Spring Cloud Feign熔断配置](https://blog.csdn.net/Diandikongji/article/details/112747687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [feign的熔断](https://blog.csdn.net/weixin_45893072/article/details/122972939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
feign配置token
要在Feign中配置token,可以使用Feign的拦截器和请求头。以下是一些步骤:
1. 创建一个Feign的请求拦截器,用于在请求中添加token。
```java
public class TokenInterceptor implements RequestInterceptor {
private String token;
public TokenInterceptor(String token) {
this.token = token;
}
@Override
public void apply(RequestTemplate template) {
template.header("Authorization", "Bearer " + token);
}
}
```
2. 在Feign的配置类中注册拦截器。
```java
@Configuration
public class FeignConfig {
@Value("${auth.token}")
private String token;
@Bean
public RequestInterceptor requestInterceptor() {
return new TokenInterceptor(token);
}
}
```
3. 在Feign客户端接口中添加@RequestHeader注解,用于接收token。
```java
@FeignClient(name = "example-service")
public interface ExampleClient {
@GetMapping("/example")
String getExample(@RequestHeader("Authorization") String authorization);
}
```
现在,当调用ExampleClient的getExample方法时,Feign会自动添加token到请求头中。