• 【分布式微服务】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会将请求放入一个队列中,然后由一个线程池来处理这个队列中的请求。线程池中的每个线程都可以处理一个请求,请求处理完成后,就会从队列中取出下一个请求进行处理。这样可以并发处理多个请求,提高了系统的吞吐量和响应性能。

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

  • 相关阅读:
    HTML中已经过时的标签
    文件上传渗透实验
    利用非递归遍历统计二叉树的结点数
    Realsense相机SDK使用(二)----------- 利用深度信息完成测距任务(不使用Ros)
    Java生成PDF笔记整理
    【leetcode C++】最小栈
    无人机和热成像
    借助 Terraform 功能协调部署 CI/CD 流水线-Part 2
    防蓝光护眼台灯什么牌子好用?内含高赞收藏护眼台灯推荐
    Java 21 新特性:虚拟线程(Virtual Threads)
  • 原文地址:https://blog.csdn.net/yujing1314/article/details/133297262