当前位置:首页 > 服务端 > feign的性能优化、Feign的使用-最佳优化两种方案

feign的性能优化、Feign的使用-最佳优化两种方案

2022年11月05日 22:05:33服务端14

性能优化基础:

feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记

feign底层客户端实现默认使用的是URLConnection,这是jdk自带的发送http请求的包,不支持连接池;
这样在发送http请求时,每次都要建立连接(三次握手),发送数据,断开连接(四次挥手),比较浪费性能、消耗时间

所以推荐使用另外两种底层实现(其中更推荐Apache HttpClient);
日志级别推荐设置basic和none,性能更好
性能优化配置设置:
feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记
1、httpclient已经被springboot管理版本,引入时,不需要加入版本号
2、在配置时,一定要把httpclient下的enable设置为true,使feign对httpclient的配置生效
3、feign的httpclient连接池的最大连接数,根据压力测试时,测出那个什么值性能最好就设置什么值,盲目的写多少,过大,过小都是不合适的。

Feign的使用-最佳实践

在实际开发项目使用feign的过程中,各公司逐渐对feign的使用方式有了更优的实践
方式一:继承与实现(不怎么推荐)
feign的客户端(服务消费者)和服务端(服务提供者)定义一个统一的父接口,这样统一管理,更加系统化
缺点:高耦合
feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记
方式二:抽取(推荐使用)
以前是客户端(服务消费者)写一套对服务端(服务提供者)的feign接口,这样当服务增多,每个服务都要写一套对该服务端的feign接口,且修改时也要一一修改;
现在反过来,由服务提供者自己抽取出一个feign的独立模块,其他服务中引入这个模块,即可调用这个服务了
feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记
缺点:引入这个服务端模块时,会将很多我这个客户端服务用不着的端口、pojo等都一起引入进来了,增加项目模块大小

方式二的实现

设userservice为服务提供者,orderservice为服务消费者,那我只需要新增(抽取)一个模块,对userservice所有的对外接口、实体类都写到这个模块(feign接口模块)里面来,那么其他所有的模块要使用userservice模块,向userservice发送请求,只需引入userservice的那个feign接口模块,即可使用,所有的服务消费者都使用userservice提供的这一套feign接口
feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记

注意:以这样的方式引入服务提供者的feignclient包,需要在启动类指定包路径,不然spring容器找不到这些feignclient
feign的性能优化、Feign的使用-最佳优化两种方案 _ JavaClub全栈架构师技术笔记
以上两种方式,更推荐第二种方式,第一种引入太多,项目臃肿

作者:茂桑
来源链接:https://blog.csdn.net/dayuiicghaid/article/details/126218016

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68021.html

标签: Feign
分享给朋友:

“feign的性能优化、Feign的使用-最佳优化两种方案” 的相关文章

java 面试题——feign

java 面试题——feign

作者:小十木 来源链接:https://blog.csdn.net/m0_37664223/article/details/106571572...

SpringCloud(三)-  OpenFeign简介及@FeignClient等注解的使用

SpringCloud(三)- OpenFeign简介及@FeignClient等注解的使用

《 心有多大,舞台就有多大 人得有—理想 》 OpenFeign简介及@FeignClient等注解的使用 唯能极于情,故能极于剑 有问题或错误请及时联系小编或关注小编公众号 "CodeCow",小编一定及时回复和改正,期待和大家一起学习交流 此...

SpringCloud组件:Feign之日志输出

目录 Feign之日志输出 Feign日志输出说明 前期准备 构建项目 tairan-spring-cloud-feign-logger配置 源码位置 Feign之日志输出...

SpringCloud Feign重试详解

SpringCloud Feign重试详解

摘要: 今天在生产环境发生了数据库进程卡死的现象,除了sql因为全量更新,没加索引的原因,最主要还是我们的接口的服务器端接口出现问题了。忽视了更新接口的幂等性,以及调用方feign client的重试,导致接口重复执行。万幸的是数据已经修复,花了几个小时跟踪feign和ribbon的源...

微服务调用组件Dubbo实战 & Open Feign迁移到Dubbo解决方案

微服务调用组件Dubbo实战 & Open Feign迁移到Dubbo解决方案

文章目录 一、Spring Cloud整合Dubbo 1.1 spring-cloud-dubbo-api 1.2 spring-cloud-dubbo-provider-...

feign 启用gzip压缩

feign 启用gzip压缩

目录 1.项目中启用gzip压缩 2.在feign 服务提供方开启http压缩(很重要) 3.启用httpclient 4.还有一点很容易忽略的,引入httpclient jar包,同时注意和openfeign的版本一致。 一.最近项目要在f...

声明式服务消费Feign——4(使用Feign实现消费者服务熔断)

声明式服务消费Feign——4(使用Feign实现消费者服务熔断)

使用Feign实现消费者服务熔断 服务熔断 1.在yml文件开启 hystrix功能 2.指定熔断回调逻辑 3.测试...

Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现

Spring Cloud Alibaba Sentinel 整合 Feign 的设计实现

作者 | Spring Cloud Alibaba 高级开发工程师洛夜 来自公众号阿里巴巴中间件投稿 前段时间 Hystrix 宣布不再维护之后(Hystrix 停止开发。。。Spring Cloud 何去何从?),Feign 作为一个跟 Hystrix 强依赖...

Feign支持文件上传

1.2. Source code and dependencies Beside feign-core, we will use feign-form which is module that adds support for encoding...

聊聊如何根据环境动态指定feign调用服务名

前言 前段时间和朋友聊天,他说他部门老大给他提了一个需求,这个需求的背景是这样,他们开发环境和测试环境共用一套eureka,服务提供方的serviceId加环境后缀作为区分,比如用户服务其开发环境serviceId为user_dev,测试环境为user_test。每次服务提供方发...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。