首先明确一点:RPC(远程服务调用)在消费者端肯定是通过代理模式来实现的。
..

消费者的xml


  
      
    
    

1.容器启动时,注册解析器 DubboNamespaceHandler 读取相关标签生成对应的BeanDefinition交给Spring容器。

..
2.对于消费者来说关键的一项是 dubbo:reference,所以这里分析解析reference到对应的类 ReferenceBean。由于ReferenceBean实现了InitializingBean接口,所以在设置完成bean的所有属性后会调用 afterPropertiesSet 方法。
..
3.afterPropertiesSet 方法来检查配置是否完善,包括consumer、application、module、register、monitor,最后调用getObject (父类 ReferenceConfig 的 init 方法)方法来组装 Invoker。
..
4.init 方法里面关联了所有的application、module、consumer、registry、monitor、service、protocol后调用对应Protocol类的refer方法生成InvokerProxy。当用户调用service时dubbo会通过InvokerProxy调用Invoker的invoke的方法向服务端发起请求。客户端就这样完成了自己的初始化。

..

附录

全部的标签

..

参考

【flashflight的专栏- Dubbo源码分析】http://blog.csdn.net/flashflight/article/details/44318447
【dubbo官方文档】http://dubbo.io/books/dubbo-user-book/preface/