proxy0#method(argument)
dubbo使用Javassist框架动态生成代理类
->com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler#invoke
->com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker#invoke
未配置mock属性,继续调用
配置mock属性,属性值不是force开头,先继续调用,如果出现非业务异常(如超时),调用mock类
配置mock属性,属性值是force开头,调用mock类
->com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker#invoke(com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker#invoke)
根据loadbalance属性加载负载均衡策略,默认随机策略
random、roundrobin、leastactive、consistenthash
->com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker#doInvoke
根据负载均衡策略,选择要调用的Invoker对象(一个invoker对应一个provider)
->com.alibaba.dubbo.registry.integration.RegistryDirectory.InvokerDelegete#invoke(com.alibaba.dubbo.rpc.protocol.InvokerWrapper#invoke)
->com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper#invoke
->filter链--dubbo原生定义filter类定义在META-INF/dubbo/internal/com
ConsumerContextFilter、FutureFilter等
->com.alibaba.dubbo.rpc.listener.ListenerInvoker
dubbo-consumer调用堆栈
最新推荐文章于 2021-11-02 20:52:22 发布
本文深入探讨了Dubbo框架中消费者调用的服务过程,从请求发起、远程调用到结果返回,详细剖析了各个步骤及涉及的核心组件,帮助读者理解Dubbo的内部工作机制。
摘要由CSDN通过智能技术生成