性能优化基础:

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

所以推荐使用另外两种底层实现(其中更推荐Apache HttpClient);
日志级别推荐设置basic和none,性能更好
性能优化配置设置:

1、httpclient已经被springboot管理版本,引入时,不需要加入版本号
2、在配置时,一定要把httpclient下的enable设置为true,使feign对httpclient的配置生效
3、feign的httpclient连接池的最大连接数,根据压力测试时,测出那个什么值性能最好就设置什么值,盲目的写多少,过大,过小都是不合适的。

Feign的使用-最佳实践

在实际开发项目使用feign的过程中,各公司逐渐对feign的使用方式有了更优的实践
方式一:继承与实现(不怎么推荐)
feign的客户端(服务消费者)和服务端(服务提供者)定义一个统一的父接口,这样统一管理,更加系统化
缺点:高耦合

方式二:抽取(推荐使用)
以前是客户端(服务消费者)写一套对服务端(服务提供者)的feign接口,这样当服务增多,每个服务都要写一套对该服务端的feign接口,且修改时也要一一修改;
现在反过来,由服务提供者自己抽取出一个feign的独立模块,其他服务中引入这个模块,即可调用这个服务了

缺点:引入这个服务端模块时,会将很多我这个客户端服务用不着的端口、pojo等都一起引入进来了,增加项目模块大小

方式二的实现

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

注意:以这样的方式引入服务提供者的feignclient包,需要在启动类指定包路径,不然spring容器找不到这些feignclient

以上两种方式,更推荐第二种方式,第一种引入太多,项目臃肿

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

  1. 今日头条android反编译,今日头条启动优化:MultiDex 优化(两种方案)

    这是第四篇文章了,也是你们最想看的一篇了,想要观看其他文章请持续关注博主, 需要完整文章的可以在评论区留言或者私信博主 2.2.6 MultiDex 优化(两种方案) 知道了MultiDex原理之后, ...

  2. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL

    一条SQL查询语句在经过MySQL查询优化器处理后会生成一个所谓的执行计划,这个执行计划展示了具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等. 本章的内容就 ...

  3. c# 多线程界面卡顿_优化electron客户端卡顿的几种方案

    背景 公司需要做一个同步盘的客户端,框架技术选型方面使用了支持跨平台的Electron框架,其中一些核心功能就是文件的上传,和下载,考虑到node操作文件比较方便,起初把文件的下载上传操作放到主进程, ...

  4. 优化electron客户端卡顿的几种方案

    背景 公司需要做一个同步盘的客户端,框架技术选型方面使用了支持跨平台的Electron框架,其中一些核心功能就是文件的上传,和下载,考虑到node操作文件比较方便,起初把文件的下载上传操作放到主进程, ...

  5. echarts柱状图优化(柱状图渐变色实现的两种方式)

    实现方式一: option = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},y ...

  6. 完爆90%的性能毛病,收好数据库优化八大通用绝招

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 毫不夸张地说,咱 ...

  7. Android性能调优:App启动速度优化

    一.App启动分类 1.冷启动 Cold start 在启动应用前,系统还没有App的任何进程.比如设备开机后应用的第一次启动,系统杀掉应用进程 (如:系统内存吃紧引发的 kill 和 用户主动产生的 ...

  8. 性能优化:Android App启动速度优化

    一.App启动分类 1.冷启动 Cold start 在启动应用前,系统还没有App的任何进程.比如设备开机后应用的第一次启动,系统杀掉应用进程 (如:系统内存吃紧引发的 kill 和 用户主动产生的 ...

  9. sql性能分析以及sql语句的优化

    sql性能分析的几种方式 SQL执行频率 show [session|global] status like 'com__(七个下划线)_';可以查看当前数据库的INSERT.UPDATE.DELET ...

最新文章

  1. 尚硅谷Java视频教程导航(学习路线图)
  2. Elasticsearch-PHP实战操作
  3. 茫茫IT,我们努力,在努力。
  4. [译]Visual Studio 2008 Code Metrics
  5. tomcat设置https访问
  6. python导入词云包失败:ImportError:cannot import name ‘WordCloud’
  7. django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html
  8. 2020年物联网网络容量至少是目前的1000倍
  9. C语言求最大公约数和最小公倍数的几种算法
  10. 女生最想让男生知道的58件事[[急转]]
  11. 开源3d模型格式转换_将您的开源业务转换为基于收入的模型时应考虑的因素
  12. python编程(关于cocos2d)
  13. MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
  14. 响应式pbootcms模板英文外贸类网站
  15. 图深度学习 Deep Learning on Graph
  16. hdmi线推荐微型计算机,几款高清线对比下来,这款mini dp转HDMI最实用
  17. 计算机技术在扬声器单元应用,晶莹剔透的水晶魅力-细赏Waterfall玻璃扬声器的独特设计...
  18. Word文件总页码不含首页和目录设置方法
  19. WORD表格合并单元格并居中对齐
  20. 计算机学院的师弟师妹们,请不要去餐馆打工了

热门文章

  1. PTA——7-4 有课几何
  2. 基于Springboot的智慧校园管理系统(PC端和APP端双端应用)
  3. web图书销售管理系统_解读图书管理系统为书店带来的好处
  4. 【大数据基础实践】(六)数据仓库Hive的基本操作
  5. Golang学习笔记之依赖包管理工具gvt
  6. 北理工乐学H:洗牌(选作)
  7. canvas 画布在主流浏览器中的尺寸限制详细介绍
  8. 趋势分析之移动平均线
  9. matlab怎么搭建神经网络,matlab实现神经网络算法
  10. Linux也可以这样美——Ubuntu18.04安装、配置、美化-踩坑记