1.4-服务消费者调用流程

一:InvokerInvocationHandler

dubbo的服务消费者是基于接口的,为该接口生成一个代理对象。代理对象一般都有一个InvocationHandler,dubbo的就是InvokerInvocationHandler。

进入InvokerInvocationHandler在invoke方法断点。就能看到执行。

InvokerInvocationHandler内部会封装一个RpcInvocation。

然后MockClusterInvoker.invoke(RpcInvocation);

二:LoadBalance

在invoke内部会寻找负载均衡节点,找到某个服务提供者。然后doInvoke

return doInvoke(invocation, invokers, loadbalance);

三:doInvoke
1.4-服务消费者调用流程_第1张图片
22222.png

四:其他

  • netty在请求时候会封装一个Request|id 这里的id这么玩的
    public class Request {
    private static final AtomicLong INVOKE_ID = new AtomicLong(0);
    }

  • dubbo在执行过程中会有很多调用链,其中传递参数是基于RpcInvocation,这点可能和spring一样。

你可能感兴趣的:(1.4-服务消费者调用流程)