千家信息网

OpenFeign如何使用

发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,这篇文章主要介绍了OpenFeign如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇OpenFeign如何使用文章都会有所收获,下面我们一起来看看吧。OpenFei
千家信息网最后更新 2024年11月13日OpenFeign如何使用

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

OpenFeign基本使用

OpenFeign简介

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

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

基本使用

以用户服务调用商品为例

用户服务配置 OpenFeign

  1. 导入依赖

                            org.springframework.cloud                        spring-cloud-starter-openfeign                


  2. 启动类上加注解

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

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

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

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

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

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

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

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

  6. 流程

关于传递参数的处理

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

  1. /{} 拼接参数

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

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

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

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

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

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

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

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

开启日志

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

Feign日志的配置

1.配置类 @Bean

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

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

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

Feign参数调优

1. 替换OKHttp

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

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

添加依赖

    com.squareup.okhttp3    okhttp

修改配置文件

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=truefeign.compression.response.enabled=true## 配置压缩文档类型及最小压缩的文档大小feign.compression.request.mime-types=text/xml,application/xml,application/jsonfeign.compression.request.min-request-size=2048

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

服务 接口 用户 用户服务 参数 配置 商品 示例 日志 注解 客户 客户端 文档 知识 最小 均衡 内容 大小 常见 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发专业宣传方式有哪些 重点时期网络安全保障项目 软件开发用什么配置的苹果电脑 航天系统网络安全 河北计算机软件开发价格 软件开发规范类书籍 哪种网络安全宣传方式 云服务器存储安全性有备份吗 向鸿 南昌 软件开发 深圳云风暴软件开发有限公司 国家网络安全审查技术与认证中心 萍乡市乐啦网络技术 群晖docker数据库设置 烟台戴尔服务器销售电话 江西省百万网民学法律网络安全 有关功能蛋白的数据库 上海辖区软件开发电话 上海依度网络技术有限公司招聘 河海大学网络安全知识图谱 中国银行网络安全管理 姜堰区环保网络技术诚信服务 软件开发运维科技是什么意思 淮安ios手机软件开发 stm32软件开发师 emc服务器管理口 什么软件开发汉字 微信收藏在手机里还是服务器里 nba数据库奥尼尔 数据库返回最大值 临海定制软件开发信息推荐
0