欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

dubbo源码研究(一)

程序员文章站 2022-04-09 10:09:19
1. dubbo源码研究(一) 1.1. dubbo启动加载过程 1. 我们知道,现在流行注解方式,用spring管理服务,dubbo最常用的就是 和`@Service`了,那么我首先找到这两个实现的地方 1.1.1. 实现 1. 由下图可知 2. 可以看到实现方法以BeanPostProcesso ......

1. dubbo源码研究(一)

1.1. dubbo启动加载过程

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

1.1.1. @service实现

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

1.2. 代理调用

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

dubbo源码研究(一)

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

  2. 后续调用默认使用failover失败转移的类,再到netty调用
    dubbo源码研究(一)

1.3. 消费端加载过程

  1. 加载url
    dubbo源码研究(一)

1.4. 注意点

1.4.1. 路由调用

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

dubbo源码研究(一)

1.4.2. 默认负载策略

  1. 默认负载均衡策略是随机
    dubbo源码研究(一)