关于dubbo嵌套调用,消费者过滤器消除RpcContext导致的最早调用的消费者丢失RpcContext,链路追踪采集不到问题

wbrvyc0a  于 2022-10-21  发布在  其他
关注(0)|答案(3)|浏览(216)

解释:order是最外层dubbo的调用,distribute是里层的dubbo调用。client代表消费者,server代表提供者。before可以理解成拦截方法前,after理解成拦截方法后。
问题:在里层的dubbo调用后将前一个未执行完毕的dubbo消费的RpcContext消除覆盖,导致上未执行完的dubbo消费传递上下文给提供方的时候丢失RpcContext。

wfauudbj

wfauudbj2#

升级到 3.0 分离 RpcClientAttachment 和 RpcServerAttachment 解决

jmo0nnb3

jmo0nnb33#

DUBBO3 的 URL 设计上 感觉很坑, RPCServiceContext的话 如果出现嵌套调用, 要先保存上下文, 然后 调用其它RPC 服务, 然后恢复上下文。 尽量不要再 Consumer 的 Filter中 发起其它 RPC 调用。

相关问题