Dubbo剖析-服务消费方Invoker到客户端接口的转换

一、前言

前面dubbo整体架构分析里面我们讲解了服务消费者消费一个服务的详细过程是,首先 调用 Protocol 的 refer 方法生成 Invoker 实例,接下来把Invoker 转换为客户端需要的接口(如:UserServiceBo),本文来讲解第二个环节的实现

image.png

二、Invoker到客户端接口的转换

Invoker到客户端接口的转换是下面代码完成的:

image.png

其中proxyFactory是代理类的扩展接口,默认情况下这里调用getProxy返回的spi扩展实现类是JavassistProxyFactory,也就是这里是调用了JavassistProxyFactory的getProxy方法,getProxy代码如下:

image.png

该代码的作用是对接口interfaces进行代理,并使用InvokerInvocationHandler对具体调用进行拦截。InvokerInvocationHandler中的invoker就是服务消费方远程服务到Invoker转换的invoker。

三、总结

服务消费方远程服务到Invoker的转换,是通过 ReferenceConfig 类的 init 方法调用 Protocol 的 refer 方法生成 Invoker 实例,这是服务消费的关键。

欢迎大家加入微信扫码进入知识星球进行深入探讨


121、.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 坐在公交车里,闭上眼准备休息一下。耳边响起一个清脆悦耳的声音“阿刁 住在西藏的某个地方 秃鹫 一样 栖息...
    竹叶儿YS阅读 849评论 0 0
  • 你圆满的时候 心中满是光亮 连地上的小草 都能感到快乐 你悲伤的时候 好像缺失了一大块 浓浓的黑沉 压住了你大半的...
    若有悲欢阅读 234评论 0 1
  • 在我书房的窗前,正正有盏清白的路灯。夜晚坐于窗前,它似月亮般洒下清辉。不不不,并不刺眼,它在院中小径的那一边,而我...
    嵩嵩穿着红舞鞋阅读 330评论 0 1
  • 周末在家研究了一下bootstrap-sass 的源代码,发现自己对于选择器还不是很明白。做了一些笔记和大家分享。...
    robinhwang阅读 1,818评论 0 6