

01.Feign的核心流程
source link: http://sunliangliang.com/?p=39
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

01.Feign的核心流程
Feign的核心流程
通过一张大图简单描述下Feign的核心处理流程
- 核心配置参数
1.一张大图说明Feign的核心流程
前提说明,假设此处由一个eureka-client
服务作为client,调用另一个服务eureka-order
作为server,则在服务eureka-client
中有一个@FeignClient
标注的类OrderClient
,而server端会提供一个接口,那么发起请求流程如下
- 请求从controller中发起,会调用一个FeignClient注解的接口
OrderClient
- 在这里
Feign的核心机制
肯定会扫描@FeignClient
标注的所有接口,通过动态代理实现该接口 - 而在
OrderClient
中会有多个方法,使用了SpringMVC的注解@RequestMapping或者@GetMapping
等,这里会生成urlhttp://SERVICE-ORDER/order/{id}
- 接下来会拿到
@RequestMapping
标注的方法中的请求参数,完善请求url为http://SERVICE-ORDER/order/1?status=2
- 接下来就是Ribbon相关的处理逻辑了
- Ribbon从EurekaClient中获取的对应的ServerList,通过负载均衡算法选取出一台实例
192.168.0.0.1:8080
- 再次替换url为
http://192.168.0.0.1:8080/order/1?status=2
,此时url已经完成 - 则通过http组件完成服务的调用,获取到对应的json数据
- Ribbon从EurekaClient中获取的对应的ServerList,通过负载均衡算法选取出一台实例
- 将对应的json数据转换成实例bean,返回给请求
2.feign的核心参数
Feign配置的核心参数涉及到以下几个,其中
eureka-order
是对应的服务名
feign.client.config.eureka-order.connect-timeout=5000
* feign.client.config.eureka-order.read-timeout=5000
feign.client.config.eureka-order.logger-level=full
feign.client.config.eureka-order.decode404=false
feign.client.config.default.connect-timeout=5000
feign.client.config.default.read-timeout=5000
feign.client.config.default.logger-level=full
feign.client.config.default.decode404=false
- 本文作者: 阿亮
- 本文链接: http://sunliangliang.com/?p=39
- 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
Recommend
-
43
打造适用于c#的feign 之前因为工作原因使用sp...
-
34
feign简介: feign是一种声明式,模板化的HTTP客户端,spring cloud对feign进行了增强,使其支持SpringMvc的相关注解,并整合了ribbon做负载均衡。在spring cloud中使用feign做HTTP远程服务请求,可以做到就像调用本地方法一样...
-
31
前言 最近准备将公司的一个核心业务系统用 Java 进行重构,大半年没写 Java , J...
-
10
Feign Api返回值为void时获取 Response信息macOS 10.15.6 jdk1.8 Springboot2.3.1RELEASE spring-cloud-starter-openfeign2.2.3.RELEASEA、B 两个服务之间通过 Feign Api 进行通信, A 提供的 Api 包中包含一些返回值为...
-
12
Maintainable error handling with Feign clients? Not a dream anymore October 1, 2020October 1, 2020 / by Author Arnold Galovics Over the last couple of years, I’ve been using Fe...
-
12
The guys at Netflix have developed and open sourced (among many other things) Feign and Ribbon. These libraries can help you as a developer, to build robust, fault tolerant service integrations. Best of all, they’ve been tested in the wild...
-
12
Feign请求处理流程 前面已经学习完了@Feign代理类的生成,接下来完成基于Feign的请求流程的处理,一个请求过来怎么去获取请求url 基于Fein进行请求的整体流程1.Feign的请求处理流程 基于上篇的内容我们已经知道我...
-
6
基于代理模式构建Feign.Builder FeignClientFactoryBean 上一篇文章中,我们完成了Feign相关包以及组件扫描相关源码的阅读,这一节开始进行FeignClient相关组件的初始化,即通过代理模式生成相关的Bean.入口类为
-
7
Spring Cloud之Finchley版学习(十)-Feign深入 作者: wencst 分类: JAVA,微服务...
-
8
Spring Cloud之Finchley版学习(九)-Feign 作者: wencst 分类: JAVA,微服务...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK