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

这篇具有很好参考价值的文章主要介绍了feign的性能优化、Feign的使用-最佳优化两种方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

性能优化基础:

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

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

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

Feign的使用-最佳实践

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

方式二的实现

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

注意:以这样的方式引入服务提供者的feignclient包,需要在启动类指定包路径,不然spring容器找不到这些feignclient
feign的性能优化、Feign的使用-最佳优化两种方案
以上两种方式,更推荐第二种方式,第一种引入太多,项目臃肿文章来源地址https://www.toymoban.com/news/detail-412794.html

到了这里,关于feign的性能优化、Feign的使用-最佳优化两种方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务服务间调用组件Feign使用介绍、原理、优化技巧

    Feign是一个声明式的Web Service客户端。它让微服务之间的调用变得更简单。Feign具有可插拔式的注解支持,包括Feign 注解和JAX-RS注解。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注解的支持,并且也支持Spring WebFlux。 Feign可以与Eureka和Ribbon组合使用以支持负载均

    2024年02月06日
    浏览(77)
  • Feign API模块导入的两种方式

    说明:在微服务框架中,会把其他微服务用到的FeignClient统一放到一个模块里面,称为FeignAPI,其他微服务需要使用FeignClient,可以引入FeignAPI的Maven坐标。 但是只引入FeignAPI的坐标还不行,FeignAPI中的Bean对象是孤立的,还需要把FeignAPI中的Bean对象加入到IOC容器中才可以正常使用

    2024年02月15日
    浏览(36)
  • Feign报错Method Not Allowed 405 5种解决方案

    Feign发送Get请求时,采用POJO传递参数 Method Not Allowed 405 这段代码是在 HttpURLConnection 中发现的,jdk原生的http连接请求工具类,原来是因为Feign默认使用的连接工具实现类,所以里面发现只要你有body体对象,就会强制的把get请求转换成POST请求。 量大的话改的东西多 使用@Valida

    2024年02月03日
    浏览(47)
  • Feign简介及使用

    在实际开发中,我们对某些服务的调用可能不止于一处,往往一个接口会被多处调用,所以我们通常都会针对各个微服务自行封装一些客户端累来包装这些依赖服务的调用 由此,Spring Cloud Fegin在Spring Cloud Ribbon的 RestTemplate基础上做了进一步封装, 在Spring Cloud Feign的实现下,只

    2023年04月08日
    浏览(21)
  • SpringCloud:Feign的使用及配置

    目录 Feign的使用及配置 1、Feign替代RestTemplate 2、使用Fegin步骤 3、自定义配置 4、Feign使用优化 5、Feign的最佳实践方式 1、Feign替代RestTemplate RestTemplate方式远程调用的问题  问题: 1、代码可读性差,编程体验不同统一 2、参数复杂,URL难以维护 Feign介绍 Feign是一个声明式的htt

    2024年02月08日
    浏览(29)
  • Spring Cloud Feign实战来袭:工程中配置断路器Hystrix报错NoClassDefFoundError:HystrixCommandAspect解决方案

    在Spring Cloud Feign工程中配置断路器Hystrix的时候,pom.xml文件已经加入Hystrix相关的jar: Application.java: 可以看出来是找不到HystrixCommandAspec.java这个类,于是在github上找到这个源文件: https://github.com/dmgcodevil/Hystrix/blob/958ec5d7b4bb967be077a4c2bbcdc71e7a7f5248/hystrix-contrib/hystrix-javanica/src/mai

    2024年02月16日
    浏览(48)
  • 【Spring Cloud】如何使用Feign实现远程调用

    本次示例代码的文件结构如下图所示。 在 order-service 的 pom.xml 文件中导入 Feign 的依赖坐标。 在 order-service 的启动类上添加注解 @EnableFeignClients ,以开启 Feign 功能。 Feign 采用了 Spring MVC 的注解的方式发起远程调用。只需要把发 HTTP 请求的信息声明在一个接口中,并添加注解

    2024年02月13日
    浏览(47)
  • 【云原生】微服务之Feign的介绍与使用

    前言: 最近在学习微服务相关的知识,看了黑马的相关课程,将关于Feign的知识又总结了一些,希望能帮到各位小伙儿们以及加深下自己的印象🎊 如果文章有什么需要改进的地方还请大佬多多指教🥂 小威先感谢大家的支持了😁 🏠个人主页:小威要向诸佬学习呀 🧑个人简

    2023年04月08日
    浏览(33)
  • 项目启动Feign调用报错 The bean ‘xxx.FeignClientSpecification‘ could not be registered 的解决方案

    xxx.FeignClientSpecification无法注册 问题现象: xxx.FeignClientSpecification无法注册。已定义具有该名称的 Bean,并且已禁用覆盖。 解决方案:

    2024年02月16日
    浏览(43)
  • Java feign使用okhttp跳过https安全校验

    今天调用微软Azure OpenAI时报错了,百度一番发现需要https证书,后来想能不能跳过校验呢,费心良苦实验一番终于实现 代码如下 OK,齐活~

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包