Dubbo服务调用原理

服务调用原理

参考文档
http://dubbo.apache.org/zh-cn/docs/dev/design.html
Dubbo服务调用原理

引用服务

最终,创建一个代理对象

InvokerInvocationHandler
Invoke,是一层一层封装的结果
Dubbo服务调用原理

invoker.invoke

执行
MockClusterInvoker
Dubbo服务调用原理

invoker.invoke

执行
AbstractClusterInvoker
Dubbo服务调用原理

Invoke

执行
Dubbo服务调用原理

doInvoke

执行
FailoverClusterInvoker
Dubbo服务调用原理

doInvoke

执行

Select方法,根据负载均衡策略
选择一个invoker
Dubbo服务调用原理

invoker.invoke

执行
ProtocolFilterWrapper
Dubbo服务调用原理

Invoke

执行
ConsumerContextFilter
Dubbo服务调用原理

invoker.invoke

执行
Filter层层过滤

DubboInvoker
最终,会到DubboInvoker
Dubbo服务调用原理

doInvoke

发送请求,得到请求结果