http客户端Feign
2024-01-01 18:27:34
一、简介
Feign是Spring Cloud中的一个HTTP客户端,它提供了一种简洁的方式来发送HTTP请求。Feign基于Java 8的函数式编程风格,使得代码更加简洁易读。Feign支持多种HTTP方法(GET、POST、PUT、DELETE等),还支持查询参数、URL模板、请求头、请求体(JSON或FORM)等功能。Feign还支持错误处理和响应解耦,使得代码更加灵活。使用Feign可以轻松地发送HTTP请求到远程服务,而不需要编写大量的重复代码。
二、Feign替代RestTemplate
使用Feign的步骤:
1、引入依赖
<!-- Feign客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
?
?
2、在启动类添加注解开启Feign的功能
@EnableFeignClients
?
?
3、编写Feign客户端
?在Service注入并调用 ,将id 传入后就会通过服务名称携带参数发送请求
?
总结:
Feign的使用步骤:
- ?引入依赖
- ?添加@EnableFeignClients注解
- 编写FeignClient接口
- 使用FeignClient中定义的方法代替RestTemplate
三、Feign自定义配置
?
方式一:配置文件方式?
在yml文件中配置:(全局)
feign:
client:
config:
default:
logger-level: FULL
在yml文件中配置:(局部)
feign:
client:
config:
userservice: #更换为自己的服务名称
logger-level: FULL
方式二:配置文件方式
新建一个配置类
?
四、Feign性能优化
Feign底层的客户端实现:
- URLConnection:默认实现,不支持连接池Apache HttpClient:支持连接池
- OKHttp:支持连接池
因此优化Feign的性能主要包括:
- 使用连接池代替默认的URLConnection
- 日志级别,最好用basic或none
性能优化步骤:
<!-- 引入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 # 每个路由最大连接数
?
五、实现Feign最佳实践
?
文章来源:https://blog.csdn.net/m0_72803119/article/details/135324258
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!