OpenFeign如何使用

75次阅读
没有评论

共计 1887 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍了 OpenFeign 如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 OpenFeign 如何使用文章都会有所收获,下面我们一起来看看吧。

OpenFeign 基本使用 OpenFeign 简介

OpenFeign 是一个声明式的 http 客户端,让编写 web 服务客户端变的非常容易,只需要创建一个接口并在接口上添加注解即可,OpenFeign 的前身是 Feign,后者目前已经停更了,OpenFeign 是 SpringCloud 在 Feign 的基础上支持了 Spring MVC 的注解,并通过动态代理的方式产生实现类来做负载均衡并进行调用其他服务。

Ribbon+RestTemplate 过于繁琐,通过 OpenFeign 可以简化开发

基本使用

以用户服务调用商品为例

用户服务配置 OpenFeign

导入依赖

dependency 
 groupId org.springframework.cloud /groupId 
 artifactId spring-cloud-starter-openfeign /artifactId 
 /dependency

启动类上加注解

在商品服务中写被调用接口(无参接口测试)

在用户服务中 直接使用 Feign 写服务调用

创建一个普通的 Java 接口

通过注解声明当前接口为 Feign 的客户端

在 Feign 接口中 写服务调用的方法

在用户服务的 Controller 中使用 Feign 接口

启动所有服务 两个商品服务 一个用户服务 注册中心 访问用户服务观察服务调用

访问用户服务的 Controller 可以看到负载均衡的效果

流程

关于传递参数的处理

参数传递都是 json 实际上是 RestFul 的请求

/{} 拼接参数

被调用接口示例【商品服务】

Feign 接口示例【用户服务】

OpenFeign 如何使用

?拼接参数 对应常见请求类型 Get 请求

被调用接口示例【商品服务】

OpenFeign 如何使用

Feign 接口示例【用户服务】

OpenFeign 如何使用

请求体传递参数 对应常见请求 Post 请求

被调用接口示例【商品服务】

OpenFeign 如何使用

Feign 接口示例【用户服务】

OpenFeign 如何使用

开启日志

Feign 和 RestTemplate 不一样,对请求细节封装的更加彻底,不管是请求还是请求的参数,还是响应的状态都看不到,想要看到请求的细节需要通过 Feign 的日志

Feign 日志的配置

1. 配置类 @Bean

OpenFeign 如何使用

[@Bean](https://my.oschina.net/bean)
public Logger.Level feignConfig(){ return Logger.Level.FULL;}

2. 在配置文件中开启 Feign 接口所在包的日志

OpenFeign 如何使用

通过以上配置 重启项目 再次使用 Feign 服务调用 就会看到如下日志:

OpenFeign 如何使用

OpenFeign 如何使用

Feign 参数调优 1. 替换 OKHttp

在默认情况下 spring cloud feign 在进行各个子服务之间的调用时,http 组件使用的是 jdk 的 HttpURLConnection,没有使用线程池。

有 2 种可选的线程池:HttpClient 和 OKHttp,比较推荐 OKHttp,请求封装的非常简单易用,性能也很 ok。

添加依赖

dependency 
  groupId com.squareup.okhttp3 /groupId 
  artifactId okhttp /artifactId 
 /dependency

修改配置文件

feign:
 okhttp:
 enabled: true
 httpclient:
 enabled: false
 max-connections: 1000
 max-connections-per-route: 100

max-connections:最大连接数

max-connections-per-route:每个 url 的连接数

2. 开启 Feign 请求响应压缩

开启压缩可以有效节约网络资源,但是会增加 CPU 压力,建议把最小压缩的文档大小适度调大一点

##  开启 Feign 请求响应压缩
feign.compression.request.enabled=true
feign.compression.response.enabled=true
##  配置压缩文档类型及最小压缩的文档大小
feign.compression.request.mime-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=2048

关于“OpenFeign 如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“OpenFeign 如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计1887字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)