Feign是一个声明式的http客户端,官方地址:github.com/OpenFeign/f… 其作用就是帮助我们优雅的实现http请求的发送
Feign使用
1.依赖
<!--Feign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2. 在order-service的启动类添加注解开启Feign的功能
3.定义和使用Feign客户端
例如:
@FeignClient("userservice")
public interface UserClient {
@GetMapping("/user/{id}")
User getUserById(@PathVariable Long id);
}
自定义Feign配置
如修改Feign日志配置
方式一:
方式二:
Feign性能优化
- 使用连接池代替默认的URLConnection
- 日志级别,最好用basic或none
Feign的性能优化-连接池配置
1.依赖
<!--httpClient的依赖 -->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
2.配置
feign:
client:
config:
default: # default全局的配置
loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
httpclient:
enabled: true # 开启feign对HttpClient的支持
max-connections: 200 # 最大的连接数
max-connections-per-route: 50 # 每个路径的最大连接数
当定义的FeignClient不在SpringBootApplication的扫描包范围时,这些FeignClient无法使用。有两种方式解决:
方式一:指定FeignClient所在包
@EnableFeignClients(basePackages = "cn.test.clientApi")
方式二:指定FeignClient字节码
@EnableFeignClients(basePackageClasses = {UserClient.class})