SpringBoot 获取 Dubbo RPC 上下文信息

76 阅读1分钟

获取不到数据

场景

A 服务调用 B 服务的 API 接口,B 服务的 API 中,此时使用 RpcContext.getContext().getAttachment 这段代码去获取值时,是可以获取到数据的,但是当触发方法内部另外一个同步的方法后,在该方法中,使用该代码又无法获取 RPC 的上下文信息了,很奇怪,明明是在同一个线程。

原因

在调用同步的方法之前,已经调用过一次 RPC 请求其他服务的 API 了,这会导致 Dubbo 清空了上一次 RPC 的上下文信息,导致同步的方法无法获取到数据。