1. dubbo源码研究(一)

1.1. dubbo启动加载过程

  1. 我们知道,现在流行注解方式,用spring管理服务,dubbo最常用的就是@Reference@Service了,那么我首先找到这两个实现的地方

1.1.1. @service实现

  1. 由下图可知
    dubbo源码研究(一) 随笔 第1张
  2. 可以看到实现方法以BeanPostProcessor结尾,看过spring源码的都知道,这是spring加载过程的一环,具体在哪个过程,可以异步我整理的知识架构之一https://www.processon.com/view/link/5cb096e3e4b09a003b2f1972的spring模块看看在第几步
  3. 总之,它实现了spring的BeanDefinitionRegistryPostProcessor接口和多个Aware相关接口,在spring初始化时加载相关注解

1.2. 代理调用

  1. 看起来对用户有点意义的地方

dubbo源码研究(一) 随笔 第2张

  1. 看下图所示的过程,核心就在上图的调用过程了
    dubbo源码研究(一) 随笔 第3张

    SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  2. 后续调用默认使用FailOver失败转移的类,再到netty调用
    dubbo源码研究(一) 随笔 第4张

1.3. 消费端加载过程

  1. 加载url
    dubbo源码研究(一) 随笔 第5张

1.4. 注意点

1.4.1. 路由调用

  1. 当服务提供者全部被设不匹配后,除非强制,否则设置不起作用;在测试的时候,由于我只有本身一台window机器,服务ip就一个,所有我设置了不匹配该ip是不起作用的,因为总共就一个-_-||

dubbo源码研究(一) 随笔 第6张

1.4.2. 默认负载策略

  1. 默认负载均衡策略是随机
    dubbo源码研究(一) 随笔 第7张
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄