前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dubbo源码解析-本地暴露

dubbo源码解析-本地暴露

作者头像
java进阶架构师
发布2018-09-21 17:40:38
8380
发布2018-09-21 17:40:38
举报
文章被收录于专栏:Java进阶架构师

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

顺便插播一下dubbo源码专题的文章:

  1. dubbo源码解析-集群容错架构设计
  2. dubbo源码解析-详解directory
  3. dubbo源码解析-详解router
  4. dubbo源码解析-详解cluster
  5. dubbo源码解析-详解LoadBalance

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

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

插播面试题

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

直入主题

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

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

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

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

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

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

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

写在最后

终点也是起点,本篇结束后我也要开始为下篇的开始准备了,我们下周再见.

作者:肥朝 链接:https://www.jianshu.com/p/1c53767359c6

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java进阶架构师 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档