Open Feign初步了解

Open Feign是什么?

Feign是一个声明性web服务客户端。它使得编写web客户端变得更加容易。使用Feign创建一个接口并对其进行注释。 

openfeign同时还集成SpringCloud LoadBalancer,可以在使用OpenFeign时提供http客户端的负载均衡,也可以继承阿里巴巴的Sentinel来提供熔断,降级等功能。而与SpringCloud LoadBalancer不同的是,通过OpenFeign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。

Open Feign原理

openfeign是一个声明式的web服务客户端,只需要创建一个Rest接口并且在该接口添加注解@FeignClient即可。openFeign基本上就是当前微服务调用的事实标准。

前面使用SpringCloud LoadBalancer+RestTemplate时,利用RestTemplate对http请求的封装处理形成了一套模板化的调用方法。但是实际中,由于对服务依赖的调用不止一处,往往一个接口会被多处调用,所以通常会针对每个微服务自行封装一些客户端来包装这些依赖的调用。

所以openFeign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口定义。在openFeign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(在一个微服务接口上面标注一个@FeignClient注解即可),即可完成对服务提供方的接口绑定,统一对外暴漏可以被调用的接口方法,大大简化和降低了调用客户端的开发量,也即由服务提供者给出调用接口清单,消费者直接通过调用OpenFeign调用即可。

步骤

Open Feign的超时调用

Open feign的超时调用

默认超时时间为60秒,超过之后会报错;为了避免这样的情况,有时候我们需要设置Feign客户端的超时控制,默认60秒太长或者业务时间太短都不好。
yml文件中开启配置
connectTimeout 连接超时时间
readTimeout 请求处理超时时间

Open Feign的重试机制

默认重试机制是关闭的   
如果需要开启重试机制的话,新增配置类FeignConfig并且修改Retryer配置

Open Feign中http client

如果不做特殊配置,OpenFeign默认使用JDK自带的HttpURLConnection发送请求。由于默认HttpURLConnection没有连接池、性能和效率比较低,如果采用默认,性能不是最优的。所以要更换为Apache HttpClient 5替换OpenFeign默认的HttpURLConnection 

相关推荐

  1. 初步了解json文件

    2024-07-22 21:02:01       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 21:02:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 21:02:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 21:02:01       45 阅读
  4. Python语言-面向对象

    2024-07-22 21:02:01       55 阅读

热门阅读

  1. 牛客周赛 Round 51题解

    2024-07-22 21:02:01       18 阅读
  2. C++模板编程:泛型编程的强大工具

    2024-07-22 21:02:01       15 阅读
  3. 掌握Gradle任务控制:深入doFirst与doLast的魔法

    2024-07-22 21:02:01       17 阅读
  4. /etc/logrotate.d/syslog与/etc/logrotate.conf优先级

    2024-07-22 21:02:01       16 阅读
  5. Python流程控制

    2024-07-22 21:02:01       20 阅读
  6. lua 写一个函数 判断两个时间戳是否在同一周

    2024-07-22 21:02:01       19 阅读
  7. 在淘客返利系统中使用AOP实现日志记录与审计

    2024-07-22 21:02:01       17 阅读
  8. GANs in Action: Augmenting Target Detection with Synthetic Data

    2024-07-22 21:02:01       16 阅读
  9. Html review1

    2024-07-22 21:02:01       19 阅读
  10. Midjourney绘画提示词精选

    2024-07-22 21:02:01       18 阅读
  11. 三元表达式和if语句优缺点

    2024-07-22 21:02:01       17 阅读
  12. ABC D - Palindromic Number

    2024-07-22 21:02:01       18 阅读