OpenFeign如何使用

发布时间:2022-01-12 09:07:42 作者:iii
来源:亿速云 阅读:205

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

OpenFeign基本使用

OpenFeign简介

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

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

基本使用

以用户服务调用商品为例

用户服务配置 OpenFeign

  1. 导入依赖

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


  2. 启动类上加注解

    OpenFeign如何使用

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

OpenFeign如何使用

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

  1. 创建一个普通的Java接口

    OpenFeign如何使用

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

    OpenFeign如何使用

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

    OpenFeign如何使用

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

    OpenFeign如何使用

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

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

    OpenFeign如何使用

    OpenFeign如何使用

  6. 流程

    OpenFeign如何使用

关于传递参数的处理

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

  1. /{} 拼接参数

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

      OpenFeign如何使用

    2. Feign接口示例【用户服务】

      OpenFeign如何使用

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

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

      OpenFeign如何使用

    2. Feign接口示例【用户服务】

      OpenFeign如何使用

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

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

      OpenFeign如何使用

    2. 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如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. spring cloud openfeign 源码实例解析
  2. 如何使用openfeign框架进行解耦

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

openfeign

上一篇:微服务基本概念是什么

下一篇:MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》