Feign调用原理分析

  • Feign调用原理分析
  • 问题

Feign调用原理分析

  • 调用之前:进行构造请求体。(构造方式为,配置的请求拦截器)
  • 请求方式,请求地址,请求头等等

问题

  • Feign远程调用,缺失请求头
  • 解决方式:使用feign拦截器【requestInterceptor】类配置拦截器
@Configuration
public class FeignConfig {/*** 配置feign远程请求的拦截器*  * @return 请求的拦截器*/@Beanpublic RequestInterceptor requestInterceptor(){return (requestTemplate) -> {// 获取当前请求参数ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();//获取到请求体HttpServletRequest request = requestAttributes.getRequest();// 获取到浏览器提交的cookieString cookie = request.getHeader("Cookie");// feign远程调用设置 cookierequestTemplate.header("Cookie", cookie);};}
}

** 注意事项**

  • RequestContextHolder:为spring-web提供的获取当前请求上下文的 threadLocal 类。
  • 当使用
CompletableFuture.runAsync(() -> {  *FeignService.get() });
  • 会造成 RequestContextHolder 在异步的线程 无法使用的问题。可以以下方式解决:
     RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();CompletableFuture.runAsync(() -> {// 异步线程 这里可使用 RequestContextHolder (请求上下文)RequestContextHolder.setRequestAttributes(requestAttributes1);});

Feign调用原理分析相关推荐

  1. EJB调用原理分析 (飞茂EJB)

    EJB调用原理分析 EJB调用原理分析 作者:robbin (MSN:robbin_fan AT hotmail DOT com) 版权声明:本文严禁转载,如有转载请求,请和作者联系 一个远程对象至少 ...

  2. 深入掌握Java技术 EJB调用原理分析

      深入掌握Java技术 EJB调用原理分析     一个远程对象至少要包括4个class文件:远程对象:远程对象的接口:实现远程接口的对象的stub:对象的skeleton这4个class文件. 在 ...

  3. Alibaba Dubbo框架同步调用原理分析-1

    2019独角兽企业重金招聘Python工程师标准>>> 由于Dubbo底层采用Socket进行通信,自己对通信理理论也不是很清楚,所以顺便把通信的知识也学习一下. n  通信理论 计 ...

  4. Feign底层原理分析-自动装载动态代理

    本篇文章仅介绍Feign的核心机制,包括如何交由Spring容器托管.动态代理机制等内容,不会过分深入细节. 1.什么是Feign? 这里套用Feign官方Github上的介绍:"Feign ...

  5. pure virtual method called 纯虚函数被调用原理分析

    程序退出或者组件析构过程中常发生一类"pure virtual method called"导致的core,前几栈帧如下: 这里对该问题发生的原理做一个剖析并给出一个可复现该问题的 ...

  6. Alibaba Dubbo框架同步调用原理分析-2

    2019独角兽企业重金招聘Python工程师标准>>> 接上一篇,看一下Dubbo的相关代码 关键代码: com.taobao.remoting.impl.DefaultClient ...

  7. Feign的调用原理及其源码分析

    Feign的调用原理及其源码分析 目录 概述 架构特性 设计思路 实现思路分析 Feign是如何进行服务调用的 拓展实现 相关工具如下: 实验效果:(解决思路) 分析: 小结: 参考资料和推荐阅读 L ...

  8. Feign源码分析(without spring)

    https://spring-cloud-wiki.readthedocs.io/zh_CN/latest/pages/feign.html 简介 Feign是一个声明式的Web Service客户端 ...

  9. Ribbon 的替代品 Spring Cloud Loadbalancer 使用与原理分析

    目录 一. 使用方法 二. @LoadBalancerClients 与 @LoadBalancerClient 三. 自定义负载均衡 四. 重试机制 五. 原理分析 六. 执行流程分析 系列文章: ...

最新文章

  1. 一文详解如何配置meld做git diff工具
  2. [译]高效的TensorFlow 2.0:应用最佳实践以及有什么变化
  3. Riak VClock
  4. linux获取最高权限并取消_通过安卓渗透WIN7获取系统最高权限
  5. hdu 3018 Ant Trip
  6. java设计模式之简单工厂模式
  7. stage3d 骨骼优化
  8. SCP 报错 not a regular file
  9. 威盾PHP加密专家解密
  10. python 2.7.11 linux,Python-2.7.11+Django-1.9.4安装配置
  11. 解决font-weight:600在安卓机不生效的方法
  12. 一致性算法中的节点下限(转)
  13. 转换整形数字为16进制字符串
  14. [POJ2796]Feel Good
  15. 自动控制原理知识点梳理——整体框架
  16. python自动化:uiautomation、pyautogui操作会计记账系统(2)处理收支明细表
  17. 表单格式化插件jquery.serializeJSON
  18. PTA习题 计算某年某月某日是该年中的第几天
  19. 初级计算机基础知识教程,计算机基础知识(初中级教程)
  20. 独立产品灵感周刊 DecoHack #022 - 截图应用如何在一个月收入 8000 美元

热门文章

  1. vimplus安装出现git clone失败的解决方案
  2. UG\NX二次开发 多少词汇量才能无障碍阅读开发帮助
  3. 阿帕网退役 | 历史上的今天
  4. C#如何使用log4net记录本地日志
  5. PHP可以干数据分析师吗,php的字符串常用函数
  6. oracle一直在更新注册表,WIN7安装卡死在更新注册表设置真正解决办法
  7. 三百价位的蓝牙耳机、学生党百元级蓝牙耳机推荐
  8. 201512-2消除类游戏
  9. android安全性测试工具,Android app安全性能测试
  10. 离线安装平面设计Lunacy