解释:order是最外层dubbo的调用,distribute是里层的dubbo调用。client代表消费者,server代表提供者。before可以理解成拦截方法前,after理解成拦截方法后。问题:在里层的dubbo调用后将前一个未执行完毕的dubbo消费的RpcContext消除覆盖,导致上未执行完的dubbo消费传递上下文给提供方的时候丢失RpcContext。
cbeh67ev1#
版本2.7.9
wfauudbj2#
升级到 3.0 分离 RpcClientAttachment 和 RpcServerAttachment 解决
jmo0nnb33#
DUBBO3 的 URL 设计上 感觉很坑, RPCServiceContext的话 如果出现嵌套调用, 要先保存上下文, 然后 调用其它RPC 服务, 然后恢复上下文。 尽量不要再 Consumer 的 Filter中 发起其它 RPC 调用。
3条答案
按热度按时间cbeh67ev1#
版本2.7.9
wfauudbj2#
升级到 3.0 分离 RpcClientAttachment 和 RpcServerAttachment 解决
jmo0nnb33#
DUBBO3 的 URL 设计上 感觉很坑, RPCServiceContext的话 如果出现嵌套调用, 要先保存上下文, 然后 调用其它RPC 服务, 然后恢复上下文。 尽量不要再 Consumer 的 Filter中 发起其它 RPC 调用。