调用链路如下:
- serviceA 异步调用serviceB
- serviceB 同步调用serviceC
- serviceA 接收到serviceB的响应结果是null
尝试这个解决办法 贴上实际的代码:
@Activate(group = "provider", order = -999)
public class DubboSyncFilter implements Filter {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
logger.info("RPC调用之前,处理参数.....");
//避免RpcContext透传,使用配置文件的async
boolean isAsync = invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.ASYNC_KEY, false);
RpcContext.getContext().setAttachment(Constants.ASYNC_KEY, String.valueOf(isAsync));
return invoker.invoke(invocation);
}
}
但是并没有得到解决 @AlbumenJ