zoukankan      html  css  js  c++  java
  • 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启动过程还是有点懵,对于它的整体架构和流程还是比较肤浅的,欢迎大家一起交流。

      

  • 相关阅读:
    cz_health_day07
    cz_health_day06
    mysql索引底层原理
    cz_health_day05
    redis无法获取连接原因分析
    cz_health_day04
    cz_health_day03
    cz_health_day02
    cz_health_day01
    Spring学习
  • 原文地址:https://www.cnblogs.com/xjz1842/p/9524947.html
Copyright © 2011-2022 走看看