美文网首页
Dubbo RPC 源码解析

Dubbo RPC 源码解析

作者: 可可西里的星星 | 来源:发表于2019-06-06 16:54 被阅读0次

    一、xml配置解析方式:
    1、 DubboNamespaceHandler extends NamespaceHandlerSupport 解析所有的dubbo自定义的bean,转换为beandefinition
    二、注解解析方式


    DI.png

    2、consumer(reference)启动的时候构建Proxy实例,在给bean依赖注入的时候,走Dubbo重写的getInjectedObject方法:


    image.png

    通过 buildProxy:


    image.png

    构建ReferenceBeanInvocationHandler:

    image.png

    关键在于:


    image.png

    到了:


    image.png
    到了:
    image.png
    最后通过
    image.png

    创建了InvokerInvocationHandler 代理(InvokerInvocationHandler持有MockClusterInvoker):


    image.png

    通过ReferenceAnnotationBeanPostProcessor的


    image.png

    的buildProxy方法,每个接口构建一个Proxy实例(jdkProxy方式newInstance)
    3、真正调用的时候,走ReferenceAnnotationBeanPostProcessor 的invoke 方—>InvokerInvocationHandler的invoke方法—>MockClusterInvoker的invoke方法—>AbstractClusterInvoker的invoke(获取LoadBalance方式,然后Invoker<T> invoker = select(loadbalance, invocation, copyinvokers, invoked); 选择被调用的service)—> Result result = invoker.invoke(invocation) —>InvokerWrapper的invoke—>ListenerInvokerWrapper的invoke—>ProtocolFilterWrapper的invoke—>ConsumerContextFilter的invoke


    image.png

    相关文章

      网友评论

          本文标题:Dubbo RPC 源码解析

          本文链接:https://www.haomeiwen.com/subject/xynjxctx.html