• Dubbo源码分析(三)-----消费者引用服务启动时序


                 之前分析Dubbo架构分析的一篇,从dubbo官网摘录下了,服务消费者的时序分析图。

             这篇文章还是从代码层面来分析消费者启动顺序。

     首先,获取引用的变量,如果没有初始化,则调用init方法。

        下面在看下 init方法的里面是初始化的过程。

                通过调用Class.forName的加载类到jvm。

                 将一个类中的版本和方法, 存储在一个HashMap中。

        最后,最重要的一点是createProxy这个方法,是创建动态代理, 然后创建ConsumerModel,其实是ref的装饰器,然后用ApplicationMode初始化消费者。

               然后调用RegisterProtocal的Refer方法,如果是RegisterService则直接包装成Invoker返回, 然后是多个的,则调用doRefuer方法,使用Cluster去处理。

            然后调用RegisterDirectory的subcribe,去订阅zookeeper的目录,然后使用cluster的join方法封装成Invoker,注册到ProvierConsumerRegTable中。

    接着调用 Transporter的connect函数, 最终会调用ProxyFactory的createProxy创建动态代理类。

          总结:

        最近在看dubbo启动过程还是有点懵,对于它的整体架构和流程还是比较肤浅的,欢迎大家一起交流。

      

  • 相关阅读:
    Android开发笔记——WebView
    字符串_最小表示法求循环串的最小序列(HDU_4162)
    STL_map简单应用(HDU_1075)
    DP_最大子序列和(HDU_1003)
    STL map 使用方法(转)
    数学_线性筛法建立素数表(HDU_1262)
    學習筆記 ADO數據庫訪問技術
    C#多线程学习
    Java容器
    选取单元格的基本语句
  • 原文地址:https://www.cnblogs.com/xjz1842/p/9524947.html
Copyright © 2020-2023  润新知