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