dubbo源码解析-本地暴露

撸了今年阿里、腾讯和美团的面试,我有一个重要发现…….

作者:肥朝

出处:https://www.jianshu.com/nb/6137390


201907121007_1.png

前言

上一篇dubbo源码解析-服务暴露原理中我们根据官方文档已经进行了具体服务到invoker的转换的介绍,但是后面却发现文档却说Dubbo 处理服务暴露的关键就在 Invoker 转换到 Exporter 的过程

201907121007_2.png

从标题就知道,本篇讲的是本地暴露,面试主要问得多是远程暴露,因为远程暴露涉及到了zookeepernetty.比如和zookeeper相关的最常问的两道题是服务提供者能实现失效踢出是根据什么原理?,dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗?.当然如果这两个你答得好,还会往下问,比如zookeeper实现分布式锁,zookeeper选举机制等等,netty能问得可就很多了,AIO BIO NIO,线程模型等等,netty如果要问的话一般要问得比zookeeper要深一些.

虽然本地暴露面试问得不多,但是我们看源码的初心是为了解决问题,可以把本地暴露当做一个学习远程暴露前的预热

201907121007_3.png

插播面试题

  • 讲讲dubbo服务暴露中本地暴露,并画图辅助说明

直入主题

犹豫了好久,还是决定用之前 别怕看源码,一张图搞定Mybatis的Mapper原理 的一图胜千言的风格来描述这个本地暴露.(手机看大图非常模糊,建议电脑上观看)

201907121007_4.png

对于一些细节的地方,还是要加以辅助说明,首先还是拿文档中的服务暴露图来唤醒大家回忆

201907121007_5.png

比如图中的1-4就是对应具体服务到invoker的转换,5-11对应Invoker转换为Exporter

在7中,做的是过滤器操作,详细看下图

201907121007_6.png

从中可以看出dubbo默认的过滤器是8个.

其实第10步中还利用exporterMap缓存了exporter,keyvalue参考下图

201907121007_7.png

最后一张整个过程转化完成的图来结束本篇本地暴露

201907121007_8.png

写在最后

终点也是起点,本篇结束后我也要开始为下篇的开始准备了,我们下周再见.鉴于本人才疏学浅,不对的地方还望斧正.

赞(0) 打赏

如未加特殊说明,此网站文章均为原创,转载必须注明出处。Java 技术驿站 » dubbo源码解析-本地暴露
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注【Java 技术驿站】公众号,每天早上 8:10 为你推送一篇技术文章

扫描二维码关注我!


关注【Java 技术驿站】公众号 回复 “VIP”,获取 VIP 地址永久关闭弹出窗口

免费获取资源

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏