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

      

  • 相关阅读:
    985的方格难题
    POJ 3264 区间最大最小值Sparse_Table算法
    oracle中to_date详细用法示例(oracle日期格式转换)
    PLSQL基础知识-图片
    oracle-查询-时间条件查询
    oracle基础函数--decode
    PLSQL基础学习-文字
    python3 MD5
    CentOS7关闭防火墙方法
    CentOS 7下源码安装MySQL 5.6
  • 原文地址:https://www.cnblogs.com/xjz1842/p/9524947.html
Copyright © 2011-2022 走看看