当前位置: 首页 > news >正文

【分布式微服务】feign 异步调用获取不到ServletRequestAttributes

公司调用接口的时候使用feign,但是服务之间还是使用了鉴权,需要通过RequestInterceptor 去传递uuid

概念

OpenFeign是一个声明式的Web服务客户端,它使得编写HTTP客户端变得更简单。在使用OpenFeign进行异步调用时,你可以通过配置来实现。但是,如果你在配置或调用过程中遇到问题,可能会导致ServletRequestAttributes对象的attributes属性为null。

另外,Feign是一个通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求的框架。其核心就是将以JAVA注解的方式定义的远程调用API接口,最终转换成HTTP的请求形式。然后将HTTP的请求的响应结果,解码成JAVA Bean,返回给调用者。

在Feign中,通过使用Eureka或者Consul等注册中心,可以使得服务之间的调用更加便捷。Feign也支持不同的HTTP Client,例如默认的JDK原生的URLConnection和现在流行的OkHttp等。使用不同的HTTP Client可能会对请求的响应时间、连接池管理、连接的复用等产生影响。

关于Feign的异步调用,原理上,Feign通过在内部封装了Http调用流程,将服务的远程调用转化为对HTTP请求的发送和接收。异步调用时,Feign会将请求放入一个队列中,然后由一个线程池来处理这个队列中的请求。线程池中的每个线程都可以处理一个请求,请求处理完成后,就会从队列中取出下一个请求进行处理。这样可以并发处理多个请求,提高了系统的吞吐量和响应性能。

当然,异步调用也带来了一些挑战。例如,需要合理地设置线程池的大小,以及处理

http://www.lryc.cn/news/178296.html

相关文章:

  • c#编程里面最复杂的技术问题有哪些
  • github代码提交过程详细介绍
  • Linux -- 使用多张gpu卡进行深度学习任务(以tensorflow为例)
  • Mendix中的依赖管理:npm和Maven的应用
  • 自定义hooks之useLastState、useSafeState
  • 前端判断: []+[], []+{}, {}+[], {}+{}
  • el-input-number/el-input 实现实时输入数字转换千分位(失焦时展示千分位)
  • 一篇博客学会系列(2)—— C语言中的自定义类型 :结构体、位段、枚举、联合体
  • KongA 任意用户登录漏洞分析
  • 吉力宝:智能科技鞋品牌步力宝引领传统产业创新思维
  • 【IPC 通信】信号处理接口 Signal API(1)
  • 使用GDIView排查GDI对象泄漏导致的程序UI界面绘制异常问题
  • 蓝桥等考Python组别一级001
  • Unity之Hololens2开发 如何接入的MRTK OpenXR Plugin
  • Ubuntu系统Linux内核安装和使用
  • 数学术语之源——群同态的“核(kernel)”
  • defcon-quals 2023 crackme.tscript.dso wp
  • 前端开发 vs. 后端开发:编程之路的选择
  • 算法练习4——删除有序数组中的重复项 II
  • 【C++进阶(六)】STL大法--栈和队列深度剖析优先级队列适配器原理
  • linux opensuse使用mtk烧录工具flashtool
  • Visio如何对文本打下标、上标,以及插入公式编辑器等问题(已解决)
  • 快速将iPhone大量照片快速传输到电脑的办法!
  • TCP/IP协议簇包含的协议
  • 天地图绘制区域图层
  • git权限不够:Ask a project Owner or Maintainer to create a default branch
  • AI在材料科学中的应用
  • VSCode快速设置heder和main函数
  • JimuReport积木报表 v1.6.2 版本正式发布—开源免费的低代码报表
  • sqlsession对象为什么不能被共享?