首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Dubbo源码】SPI机制源码解析

文章目录 什么是SPI机制 SPI示例 Java SPI示例 Dubbo SPI 示例 Dubbo SPI机制源码分析 ExtensionLoader静态类和静态方法 new ExtensionLoader...在 Dubbo 中,SPI 是一个非常重要的模块。基于 SPI,我们可以很容易的对 Dubbo 进行拓展。如果大家想要学习 Dubbo源码,SPI 机制务必弄懂。...接下来,我们先来了解一下 Java SPI 与 Dubbo SPI 的用法,然后再来分析 Dubbo SPI 的源码。...Dubbo SPI机制源码分析 SPI机制的实现类是ExtensionLoader;所以主要本篇文章主要分析这个类的源码; ExtensionLoader静态类和静态方法 如果你有留心dubbo使用...是从全局静态变量EXTENSION_LOADERS获取的;但是一开始没有的情况,需要先实例化一个 ExtensionLoader扩展加载器 出来 new ExtensionLoader(type) ; 为了方便分析源码

1.4K50

Dubbo 源码解析 —— Directory

前言 由于明天还要加班(心疼自己一秒),之前答应过小伙伴每周更新一篇dubbo源码解析的,鉴于上次讲到了集群容错的总体架构,这次主要讲讲第一个关键词 directory,这个内容不多,比较适合这种时间比较紧的分享....后面还会陆续分享dubbo源码解析系列,但是不止于dubbo....接口的实现类,他主要有两个实现类,一个是 StaticDirectory,一个是 RegistryDirectory 其实这个也是道很好的面试题,他还是可以区分三种人 一种是停留在使用层面的,没看过源码的...directory的实现类都是动态变化的 Directory 代表多个 Invoker,可以把它看成 List,但与 List 不同的是,它的值可能是动态变化的,比如注册中心推送变更 第三种则是有看过源码

87250

Dubbo 源码解析 —— LoadBalance

前言 终于到了集群容错中的最后一个关键词,也就是 LoadBalance(负载均衡),负载均衡必然会涉及一些算法.但是也不用太担心,算法这个词虽然高大上,但是算法也有简单和复杂之分.既然是源码解析类的文章...为了方便大家找到前几篇dubbo集群容错的文章,这里做一下小的目录跳转,后面会再弄一篇专门的目录 dubbo源码解析-集群容错架构设计 dubbo源码解析-directory dubbo源码解析...-router dubbo源码解析-cluster 插播面试题 为了能够带着面试题去看文章,我把这个插播面试题的环节放在了前面比较显眼的位置 谈谈dubbo中的 负载均衡算法及特点 最小活跃数算法中是如何统计这个活跃数的...中,如果没有配置 dubbo:reference的 actives属性,默认是调用前活跃数+1,调用结束-1,鉴于很多人可能没用过这个属性,所以我把文档截图贴出来 另外如果使用该种负载均衡算法,则 dubbo...="hash.arguments" value="0,1" /> 缺省用 160 份虚拟节点,如果要修改,请配置 <dubbo:parameter key="hash.nodes" value="320

1K40

Dubbo源码解析 —— Router

前言 估算了一下, dubbo里面涉及的东西还是比较多的.比如谈到框架的时候,设计模式都是一个老生常谈的话题,再比如我们开发中我们不常用的一些概念, spi、 javassist,以及和zookeeper...相关的一些知识,比如 ZKClient的使用,这些和 dubbo关系很密切,但是这些假如我不做一些前戏铺垫就直接把源码贴出来,那真的没啥意义.因为看源码还是要有一些基础,所以我的目标是,即使看不懂源码,...源码解析-集群容错架构设计中提到这里就暂时不多做叙述 ScriptRouter在 dubbo的测试用例中就有用到,这个类的源码不多,也就124行.引用官网的描述 脚本路由规则 支持 JDK 脚本引擎的所有脚本...如果看过我前两篇dubbo源码解析dubbo源码解析-集群容错架构设计和dubbo源码解析-directory就明白,我的分析过程都是以 官方文档为依据,所以这个问题的答案自然也在官方文档.下面引用一段官网文档的描述...IDEA中 debug查看表达式内容的技巧,比如 router.getUrl()表达式的值,如下图所示 从这里我们看到,此时实现类是 ConditionRouter,由于接下来的逻辑如果直接让大家看源码图可能不够清晰

1.1K60

Dubbo 源码解析 —— Cluster

前言 今天是小长假的倒数第二天,本来国庆是要加班四天的,后来因为要有事要回家才得以幸免,但是后天上班之后都要搬砖搬到手脱皮是必须的了.但是再忙每周一篇源码解析的承诺都依然记得,dubbo系列写完了还有很多系列...为什么呢,因为看书比较系统,而很多博客经常写着写着就断更了,导致这看了一点,那看了一点,最后学得不系统,这个就是学习的大忌.我也希望能改变这个现状,后面有时间整理出一份我自己的 技能图谱和一份 目录.比如 dubbo...另外鉴于也有一些朋友问到我 怎么看源码和 为什么看源码这两个老生常谈的问题....开头,例如 <dubbo:method name="getMenuItems...这个时候面试题就来了,注意我上面提到的 FailfastCluster,面试会问,dubbo中"读接口"和"写接口"有什么区别?

80950

源码分析Dubbo编码解码实现原理(Dubbo协议)

微信公众号:[中间件兴趣圈] 作者简介:《RocketMQ技术内幕》作者 本节主要介绍了Dubbo协议的编码方式,涉及协议头、协议体具体的编码规则,默认使用Dubbo协议,其核心类图如下: ?...在Dubbo整个框架中,codec2的可选值为dubbo、thrift,本文将重点分析Dubbo协议的编码解码。...本文主要以Dubbo协议为例进行展开,其他通信方式,例如Thrift就不做过多分析,其实现思路基本是样的,Dubbo协议的编解码实现类为DubboCodec。...TelnetCodec Dubbo telnet协议实现类。 ExchangeCodec:交互层编码器,其他具体协议的基础类,可以看出是业务协议的模板类 DubboCodec:dubbo协议。...既然ExchangeCodec是业务协议,包含Dubbo协议的模板实现类,我们就从ExchangeCodec开始,探究Dubbo编码解码实现原理。

1.3K30

dubbo源码解析-远程暴露

❈ 本篇讲的是dubbo中比较重要的远程暴露,鉴于上一篇dubbo源码解析-本地暴露采用一图胜千言的写法好像读者并不太容易理解,加上之前写的别怕看源码,一张图搞定Mybatis的Mapper原理中的读者评论中看出...这个问题.其实能学到的东西就太多了.比如你看任何一个框架的源码,那么首先要看一下设计模式吧,任何一个成熟的框架少不了工厂模式.再具体一点,看dubbo源码,你就要顺便学一下zookeeper,netty...言归正传,我们回到主题.鉴于前面提到的点题思想,就那以本篇为例,时刻提一下从源码中你学到了什么 插播面试题 服务暴露中远程暴露的总体过程,画图和文字方式说明 预热概念 首先上一张dubbo文章中非常经典的一张图...另外注意的是,图中的箭头方向是从Consumer到Provider的过程,所以这个暴露的过程,是我红框出来的反方向 直入主题 由于前两篇dubbo源码解析-服务暴露原理和dubbo源码解析-本地暴露已经多次讲述了...正如官方文档所说Dubbo 处理服务暴露的关键就在 Invoker 转换到 Exporter 的过程,看到这个exporter,也预告本篇走到了尾声 ?

56010
领券