首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Dubbo剖析-服务提供方实现类到Invoker的转换

Dubbo剖析-服务提供方实现类到Invoker的转换

作者头像
加多
发布2018-09-06 15:22:49
发布2018-09-06 15:22:49
6710
举报
文章被收录于专栏:Java编程技术Java编程技术

一、前言

前面dubbo整体架构分析里面我们讲解了服务提供者暴露一个服务的详细过程是,首先具体服务的实现类转换为了Invoker对象,然后Invoker在转换为Exporter,本文就来讲解第一步转换。

image.png

二、实现类到Invoker对象的转换

服务提供方式是通过下面方法实现服务提供的实现类到Invoker对象的转换

image.png

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

image.png

代码里面首先创建了代理类的一个wrapper类,目的是消除反射调用,原理类似于cglib的索引方式去除反射调用,提高性能。

然后创建了一个AbstractProxyInvoker类,并重写了doInvoke方法。

当提供方接受到服务消费的请求后最后会调用AbstractProxyInvoker的doInvoke,而doInvoke内部委托包含代理类的wrapper类来具体执行。

三、总结

服务提供方实现类到Invoker的转换,是通过 ProxyFactory 类的 getInvoker 方法使用 服务实现类 生成一个AbstractProxyInvoker 实例,其中使用wrapper类消除反射,提高性能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现类到Invoker对象的转换
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档