首页 > 其他分享 >dubbo2.7.x版本下,服务调用时参数丢失问题

dubbo2.7.x版本下,服务调用时参数丢失问题

时间:2024-05-07 09:58:51浏览次数:22  
标签:dubbo dubbo2.7 自定义 默认 filter 调用 参数 丢失

问题:A服务调用B,C两个服务,在A调用之前RpcContext设置了业务上的透传参数,希望在本次调用全程,在任何地方都能获取到这个参数,但是在A调用完B后 ,该参数丢失。

排查:代码中自定义实现了两个filter,分别时provider和consumer两个Filter,但里面都没有清空参数的逻辑。后面经过排查,dubbo有个默认的实现的flter -> `consumerContextFilter`会在每次调用完成后(本例中,即A调用B方法后),清空RpcContext上下文

 

解决:使用自定义的filter,替换dubbo默认的`ConsumerContextFilter`。 dubbo默认filter是通过spi机制加载的,配置在`resouces/META-INF/dubbo/internal/org.apache.dubbo.rpc.filter`文件中,我们只需要在对应的项目中,建立相同目录的文件,在文件中配置,自己实现的filter即可替换dubbo默认filter。

dubbo默认filter:

 
自定义配置替换默认filter:

 

标签:dubbo,dubbo2.7,自定义,默认,filter,调用,参数,丢失
From: https://www.cnblogs.com/lj500234/p/18176565

相关文章

  • 排查Java反射调用的InvocationTargetExcetion问题
    在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException:null,由于在异常信息中存在"null",一开始就会非常敏感,会误以为是空指针异常。其实不然,从......
  • uniapp renderjs "只能行内调用, 不能通过方法调用" 学习
    故障代码app报错(h5正常),说echarts为undefined。<viewclass="content"><button@click="get"@touchend="update">update</button><imgsrc=""alt="我是alt"id="img"/></vi......
  • C语言转写成MIPS指令集汇编以及MIPS指令集汇编中函数调用时栈的变化
    一、问候语欢迎你来到我的博客!二、C语言代码分析  这段C语言代码共有3个函数组成。set_array函数传入1个int类型的变量num,并创建了1个int类型临时变量i和1个临时int类型数组array,里面含有10个单位,此函数主要目的是调用compare函数,并将num和i传入该函数中,得到其函数返回值......
  • 函数调用过程分析
    参考:轩辕之风——从0开始学逆向第7天函数调用约定定义在计算机科学中,调用约定是一种定义子过程从调用处接受参数以及返回结果的方法的约定。不同调用约定的区别在于:参数和返回值放置的位置、参数传递的顺序、调用前设置和调用后清理的工作,在调用者和被调用者之间如何分配,被......
  • Teamcenter AWC 调用存储过程输出报表
    1.前端:1.1增加导出报表命令:{  "commands":{   ...,    "ExportBOMCommand":{      "iconId":"cmdZoomToSelected",      "title":"{{i18n.ExportBOMCommandTitle}}",      &quo......
  • ai网页详情页-测试-api调用成功返图+左侧界面及时显示
    PYTHONfromflaskimportFlask,render_template,request,jsonify,send_from_directoryimportosimportrequestsimportbase64fromPILimportImageimportioimportrandomapp=Flask(__name__)app.config['UPLOAD_FOLDER']='uploads/......
  • ai网页详情页-测试-api调用成功返图!
    "C:\Users\wujie1\Desktop\程序测试\templates\upload.html""C:\Users\wujie1\Desktop\程序测试\python.py"C:\Users\wujie1\Desktop\程序测试\uploads pythonfromflaskimportFlask,render_template,request,jsonify,send_from_director......
  • 增加调用链来获取chown的调用方
    #重命名/usr/bin/chown二进制文件为real_chownmv/usr/bin/chown/usr/bin/real_chown#编写脚本来调用real_chownvim/usr/bin/chownchown_log="/var/log/chown.log"date>>$chown_logecho"PPIDis$PPID,chown$*">>$chown_logps-ef|grep......
  • webapi创建和调用WebService
    首先需要引入soapcore包这个包提供了所需的类和soap终结点中间件。引入这个这个包之后,我们需要定义提供的服务。这里我写了一个用于查询省份面积的服务。省份信息服务///<summary>///省份信息服务接口///</summary>[ServiceContract]publicinterfaceIProvinceInfo......
  • python airllm调用本地大模型
    官方demohttps://github.com/lyogavin/Anima/blob/main/air_llm/examples/run_all_types_of_models.ipynb这里使用百川本地fromairllmimportAirLLMLlama2,AutoModelMAX_LENGTH=128#默认会去抱脸网下载,很慢,而且需要xx上网#model=AutoModel.from_pretrained("baichua......