学习目标
-
Dubbo的rpc原理
第1章 消费端请求流程
下面我们来从大局分析消费端的整个请求流程,前面我们分析过消费端用代理对象调用方法时,最终会来到InvokerInvocationHandler中,那么我们就从这个类开始看起。先掉到该类的invoker方法,该类持有了MigrationInvoker类的引用。
1.1 InvokerInvocationHandler
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (method.getDeclaringClass() == Object.class) {
return method.invoke(invoker, args);
}
String methodName = method.getName();
Class<?>[] parameterTypes = method.getParameterTypes();
if (parameterTypes.length == 0) {
if ("toString".equals(methodName)) {
return invoker.toString();
} else if ("$destroy".equals(methodName)) {
invoker.destroy();
return null;
} else if ("hashCode".equals(methodName)) {
return invoker.hashCode();