Feign是Spring Cloud中的一个HTTP客户端,它提供了一种简洁的方式来发送HTTP请求。Feign基于Java 8的函数式编程风格,使得代码更加简洁易读。Feign支持多种HTTP方法(GET、POST、PUT、DELETE等),还支持查询参数、URL模板、请求头、请求体(JSON或FORM)等功能。Feign还支持错误处理和响应解耦,使得代码更加灵活。使用Feign可以轻松地发送HTTP请求到远程服务,而不需要编写大量的重复代码。
使用Feign的步骤:
<!-- Feign客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
?
?
@EnableFeignClients
?
?
?在Service注入并调用 ,将id 传入后就会通过服务名称携带参数发送请求
?
Feign的使用步骤:
?
在yml文件中配置:(全局)
feign:
client:
config:
default:
logger-level: FULL
在yml文件中配置:(局部)
feign:
client:
config:
userservice: #更换为自己的服务名称
logger-level: FULL
新建一个配置类
?
Feign底层的客户端实现:
因此优化Feign的性能主要包括:
性能优化步骤:
<!-- 引入Httpclient依赖-->
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-httpclient</artifactId>
</dependency>
?
?yml文件
feign:
httpclient:
enabled: true # 开启feign的httpclient
max-connections: 200 # 最大连接数
max-connections-per-route: 50 # 每个路由最大连接数
?