一:InvokerInvocationHandler
dubbo的服务消费者是基于接口的,为该接口生成一个代理对象。代理对象一般都有一个InvocationHandler,dubbo的就是InvokerInvocationHandler。
进入InvokerInvocationHandler在invoke方法断点。就能看到执行。
InvokerInvocationHandler内部会封装一个RpcInvocation。
然后MockClusterInvoker.invoke(RpcInvocation);
二:LoadBalance
在invoke内部会寻找负载均衡节点,找到某个服务提供者。然后doInvoke
return doInvoke(invocation, invokers, loadbalance);
三:doInvoke
四:其他
netty在请求时候会封装一个Request|id 这里的id这么玩的
public class Request {
private static final AtomicLong INVOKE_ID = new AtomicLong(0);
}dubbo在执行过程中会有很多调用链,其中传递参数是基于RpcInvocation,这点可能和spring一样。