Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Dubbo的服务暴露过程

Dubbo的服务暴露过程

作者头像
用户1263954
发布于 2022-04-07 13:45:53
发布于 2022-04-07 13:45:53
2620
举报
文章被收录于专栏:IT技术精选文摘IT技术精选文摘

我今天来就带大家看看 Dubbo 服务暴露过程,这个过程在 Dubbo 中其实是很核心的过程之一,关乎到你的 Provider 如何能被 Consumer 得知并调用。

今天还是会进行源码解析,毕竟我们需要深入的去了解 Dubbo 是如何做的,只有深入它才能了解它。

不用担心源码问题,因为不仅仅有源码解析,敖丙也会通过画图和总结性的语言帮助大家理解,而且在面对面试官的时候,总结性的语言才是最重要的,因为不见得面试官也懂得或者记得具体的细节。

对了,源码是 2.6.5 版本。

此时构建出来的 URL 长这样,可以看到走得是 dubbo 协议。

对 exportLocal 再来一波时序图分析。

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

本文分享自 IT技术精选文摘 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
堂妹问我:Dubbo的服务暴露过程
这周去苏州见大佬,没想到遇到一堆女粉丝,其中居然还有澡堂子堂妹,堂妹一遇到我就说敖丙哥哥我超级喜欢你写的dubbo系列,你能跟我好好讲一下他的服务暴露过程么?
敖丙
2020/09/01
5060
女朋友问我:Dubbo的服务引用过程
上篇文章我们已经了解了 Dubbo 服务暴露全过程,这篇文章我就带着大家再来看看 Dubbo 服务引入全流程,这篇服务引入写完下一篇就要来个全链路打通了,看看大家看完会不会有种任督二脉都被打通的感觉。
敖丙
2020/09/14
4160
女朋友问我:Dubbo的服务引用过程
Dubbo系列-扬帆起航
接下来一段时间敖丙将带大家开启紧张刺激的 Dubbo 之旅!是的要开始写 Dubbo 系列的文章了,之前我已经写过一篇架构演进的文章,也说明了微服务的普及化以及重要性,服务化场景下随之而来的就是服务之间的通信问题,那服务间的通信脑海中想到的就是 RPC,说到 RPC 就离不开咱们的 Dubbo。
敖丙
2020/08/19
3790
dubbo源码解析-服务暴露原理
之前讲完了dubbo集群容错系列,现在开始讲比较重要的环节,也就是dubbo面试中比较喜欢问的两个点:服务发布和服务引用.
java进阶架构师
2018/09/21
5420
dubbo源码解析-服务暴露原理
三歪问我Dubbo的SPI机制是啥?
上一篇 Dubbo 文章敖丙已经带了大家过了一遍整体的架构,也提到了 Dubbo 的成功离不开它采用微内核设计+SPI扩展,使得有特殊需求的接入方可以自定义扩展,做定制的二次开发。
敖丙
2020/08/25
1K0
三歪问我Dubbo的SPI机制是啥?
Dubbo源码解析 —— 服务暴露原理
前言 之前讲完了dubbo集群容错系列,现在开始讲比较重要的环节,也就是dubbo面试中比较喜欢问的两个点: 服务发布和 服务引用. 插播面试题 服务发布过程中做了哪些事 dubbo都有哪些协议,他们之间有什么特点,缺省值是什么 什么是本地暴露和远程暴露,他们的区别 直入主题 从启动日志说起 大家都知道, dubbo是阿里巴巴开源的一个项目,前阵子阿里不仅发布的代码规范手册,还发布了相应的插件,从这点我们就知道,阿里是很注重这个代码规范的,从 dubbo项目我们也发现了,他有完善的测试
芋道源码
2018/03/02
1.1K0
Dubbo源码解析 —— 服务暴露原理
如何阅读源码?
阅读源码是每个优秀开发工程师的必经之路,那么这篇文章就来讲解下为什么要阅读源码以及如何阅读源码。
武培轩
2020/04/27
6160
Dubbo源码解析 —— Zookeeper 订阅
前言 上周写完了服务暴露总结之后发现遗漏了一个很重要的点,在dubbo源码解析-zookeeper连接中我们对面试高频题 dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者还能通信吗进行了解析.知道dubbo会对zookeeper的信息进行一个本地的文件缓存.如果你只是简单的回答出这个本地的文件缓存,可能面试官会点到为止,但是如果你按照我那样从源码角度分析,甚至连缓存到哪个磁盘文件都一清二楚,那么面试官必然会根据这个问题深入问下去.既然要深入问下去,那他会从哪个角度
芋道源码
2018/03/02
9660
Dubbo源码解析 —— Zookeeper 订阅
这两个月我偷偷在肝啥?
本文主要是敖丙读者春招的硬核总结,我主要是后期的一些排版和润色,大家也可以积极投稿(稿酬丰厚得一匹),我创作不过来了,我北大研究生的面试视频就剪辑了2个礼拜,然后还有人在那天天说我不发技术文章,后台都被骂烂了,我太难了。
敖丙
2020/06/01
5310
这两个月我偷偷在肝啥?
Dubbo源码解析 - 远程暴露
前言 本篇讲的是dubbo中比较重要的 远程暴露,鉴于上一篇dubbo源码解析-本地暴露采用一图胜千言的写法好像读者并不太容易理解,加上之前写的别怕看源码,一张图搞定Mybatis的Mapper原理中的读者评论中看出,这种方式可能有点粗暴.这个后面有时间会补上一些更细致的文字说明 自从每周一更以来,也有不少朋友问到我 怎么看源码这个问题.鉴于高中老师告诉我,作文怕走题的话,就要时刻点题.这种点题的思想也一直延续到现在,所以我的源码解析系列,也几乎都把自己分析的思路暴露出来,其实也是时刻在回答这个 怎么看
芋道源码
2018/03/02
1K0
Dubbo源码解析 - 远程暴露
《吊打面试官》系列-秒杀系统设计
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。
敖丙
2019/12/19
1.1K0
《吊打面试官》系列-秒杀系统设计
dubbo服务暴露过程源码分析
本例以一个简单典型的服务发布为例,spring配置如下 //dubbo协议 <dubbo:protocol name="dubbo" port="20880" id="dubbo1"/> //zk注册中心 <dubbo:registry id="hangzhouRegistry" address="zookeeper://192.168.64.128:2181"/> <dubbo:service interface="demo.dubbo.api.DemoService" ref="dem
技术蓝海
2018/04/26
2K0
dubbo源码——服务提供者的服务暴露过程(一)
<dubbo:xxx/>标签是Spring的自定义标签,可以查看dubbo.jar包下的META-INF->spring.handlers
冰枫
2018/06/10
2.7K0
dubbo源码解析-集群容错架构设计
本来是想把整个dubbo源码解析一次性弄完,再做成一个系列来发布的,但是正巧最近有位好朋友要去杭州面试,就和我交流了一下.本着对dubbo源码略有心得的心态,在交流过程中也发表了个人的一些粗劣的拙见.但是非常不幸的是,交流过程中我这位朋友问到了几个问题,我却没能回答得上,让我感到十分惭愧.故而将原计划提前,并且定期整理,做到定期更新一篇dubbo源码解析.好让自己的知识盲点尽早暴露出来.本篇讲的就是dubbo的一个重要概念,集群容错.既然你已经在看源码解析了,那么我就假设你对dubbo的使用上有一定的经验,并且看过了dubbo的官网的对集群容错的简单介绍
java进阶架构师
2018/08/15
3650
dubbo源码解析-集群容错架构设计
《浅入浅出》-RocketMQ
消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。
敖丙
2019/12/19
8480
《浅入浅出》-RocketMQ
Dubbo源码解析 —— 服务引用原理
前言 经过上一篇dubbo源码解析-简单原理、与spring融合的铺垫,我们已经能简单的实现了dubbo的服务引用.其实上一篇中的代码,很多都是从dubbo源码中复制出来,甚至有些类名,变量名都没改.
芋道源码
2018/04/17
8680
Dubbo源码解析 —— 服务引用原理
Java高级工程师——面试总结
面试技巧 1、背熟你的简历 原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。 2、深入了解并熟记部分Java基础知识 原因:
美的让人心动
2018/06/14
1.3K0
dubbo源码学习三——暴露服务exporter、invoker
前面我们知道通过自定义标签,我们可以定位到相关标签的解析,同时梳理出三个重要的bean:ServiceBean、ReferenceBean、ConfigCenterBean。而通过Servicebean,可以看到ServiceConfig中有我们关注的export方法,而通过export,我们可以看到其暴露服务,又分为本地暴露和远程暴露两种,而暴露之前,会进行配置的检查,然后进行url的组装操作,接着进行exporter,而暴露之前,会进行getInvoker操作。而在getInvoker操作中,首先会进行适配,然后进行动态代理模板生成,生成class文件。而export操作中,进入到RegisterProtocol中,export又分为暴露doLocalExport(originInvoker, providerUrl)——>protocol.export(invokerDelegate)——>DubboProtocol#export(Invoker<T> invoker),完成配置的放入map之后,进行服务器开启openServer(url),进行双重校验创建服务器createServer(url)-——> Exchangers.bind(url, requestHandler)——>getExchanger(url).bind(url, handler)——>HanderExchanger#bind(URL url, ExchangeHandler handler)——>Transporters.bind(url, new DecodeHandler(new HeaderExchangeHandler(handler)))——> getTransporter().bind(url, handler)——>NettyTransporter#NettyServer(url, listener)——>NettyServer#doOpen()_——>ServerBootstrap# bind(final SocketAddress localAddress),进行配置的和注册、订阅过程。暴露的过程又是首先进行适配,然后适配之后,进行到dubboProtocol中,进行getInvoker操作。
路行的亚洲
2020/07/17
1.5K0
Java高级工程师面试总结
面试技巧 1、背熟你的简历 原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。 2、深入了解并熟记部分Java基础知识 原因:
Java高级架构
2018/04/19
1.7K0
Dubbo 源码分析 - 服务导出全过程解析
本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一是前置工作,主要用于检查参数,组装 URL。第二是导出服务,包含导出服务到本地 (JVM),和导出服务到远程两个过程。第三是向注册中心注册服务,用于服务发现。本篇文章将会对这三个部分代码进行详细的分析,在分析之前,我们先来了解一下服务的导出过程。
田小波
2018/12/05
6990
Dubbo 源码分析 - 服务导出全过程解析
相关推荐
堂妹问我:Dubbo的服务暴露过程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档