E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Dubbo源码分析
dubbo源码分析
4-- ReferenceBean 获取消费者代理对象
主要工作获取invoker对象a)注册消费端的临时节点b)订阅以下的节点/dubbo/com.test.ITestService/providers/dubbo/com.test.ITestService/configurators/dubbo/com.test.ITestService/routersc)当这些节点下的子节点发生变化:刷新本地的RequestDirector的本地urlInvok
cynthina1
·
2020-09-12 16:36
dubbo
Dubbo源码分析
(三):ExtensionLoader
为什么80%的码农都做不了架构师?>>>dubbo框架的微内核+插件的机制,其中插件机制就是依赖ExtensionLoader来实现,可以说是dubbo的核心所在。通过插件机制解耦依赖来实现框架设计原则中的针对接口编程而不针对实现。熟悉ExtensionLoader就熟悉了Dubbo的扩展机制。JDK的标准SPI对比dubbo的SPIJDK的扩展SPI:新建接口,然后定义不同实现,然后/META-
weixin_33923762
·
2020-08-23 20:21
dubbo源码分析
3——SPI机制中的ExtensionLoader类的objectFactory属性分析
ExtensionLoader类是整个SPI的核心类,每个SPI都会对应一个ExtensionLoader类实例,这个类的构造方法如下:privateExtensionLoader(Classtype){this.type=type;objectFactory=(type==ExtensionFactory.class?null:ExtensionLoader.getExtensionLoader
weixin_33828101
·
2020-08-23 20:00
Dubbo源码分析
之SPI(二) | ExtensionLoader
一、概述上一篇文章已经介绍了jdkSPI机制的源码,Dubbo也采用SPI机制进行接口服务的扩展ExtensionLoader,不过采用了不同的实现方式,相比于jdk提供的ServiceLoader复杂的多,丰富了以下几个功能。1.自动注入依赖的扩展类2.自动包装扩展类3.增加注解SPI,提供默认实现类4.提供注解Adaptive,采用javassist动态生成代码,默认实现为Adaptivein
青枫绿屿
·
2020-08-23 18:20
dubbo
Dubbo源码分析
之ExtensionLoader原理
ExtensionLoader是dubbo实现SPI的核心类。ExtentionLoader的逻辑入口可以分为getExtension、getAdaptiveExtension、getActivateExtension三个。分别是普通扩展类、自适应扩展类、和激活扩展类。1.getExtension实现原理方法逻辑:先通过参数name判断是否为true,不为true再通过#createExtensi
WilliamDream
·
2020-08-23 15:40
#
Dubbo
Dubbo源码分析
之SPI扩展机制
1.jdkspi扩展机制1.1spi是什么?spi是serviceproviderinterface,是JDK内置的一种服务提供发现机制。它是针对厂商或插件来进行服务扩展发现的,像JDBC、日志框架等都有用的。简单来说,它是一种动态替换发现的机制。举个简单的例子,如果我们定义了一个规范,需要第三方厂商去实现,那么对于我们应用方来说,只需要集成对应厂商的插件,既可以完成对应规范的实现机制。形成一种插
WilliamDream
·
2020-08-23 15:40
#
Dubbo
Dubbo源码分析
之SPI(三) | ExtensionLoader
目录一、概述二、AdaptiveClassCodeGenerator三、getExtension方法四、getActivateExtension方法一、概述上一篇文章介绍了Dubbo的SPI机制ExtensionLoader源码,分析了ExtensionLoader如何从META-INFO/dubbo等目录下获取serviceprovider,并了解了它的缓存机制,缓存class字节码,缓存实例化
青枫绿屿
·
2020-08-23 14:44
dubbo
Dubbo源码分析
:RPC协议详解
概述RPC协议模块主要定义了服务提供者提供服务,消费者调用服务的一个整体架构。服务提供者:当dubbo启动时,调用registry注册模块的RegistryProtocol,完成服务的相关元数据上传注册到注册中心,包括zookeeper,Redis或者多播;注册的具体方法为RegistryProtocol.export,export方法在进行注册前,会调用doLocalExport方法,在这个方法
服务端开发
·
2020-08-22 18:09
Dubbo
Dubbo源码剖析
老版
dubbo源码分析
:dubbo[1]之dubbo配置
该篇文章作为
dubbo源码分析
的第一篇文章,我们将通过对配置模块的简单介绍来使读者由浅入深的接触整个dubbo源码。
癞虾蟆
·
2020-08-21 21:05
dubbo
【
Dubbo源码分析
】服务导出
Dubbo服务导出过程始于Spring容器发布刷新事件,Dubbo在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装URL。第二部分是导出服务,包含导出服务到本地(JVM),和导出服务到远程两个过程。第三部分是向注册中心注册服务,用于服务发现。在上篇文章中我们分析过了使用注解配置provider的时候服务暴露是通过Spring事件机制触发
一直不懂
·
2020-08-21 21:29
Dubbo源码分析
Dubbo源码分析
之ExtensionLoader源码分析
参考:http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.html上篇演示了dubbospi的一个小demo,这篇来看看源码,能力有限,不喜勿喷。上篇的测试用例如下:@TestpublicvoidtestExt2()throwsException{ExtensionLoaderextensionLoader=Extensio
Lament of Valkyrie
·
2020-08-21 20:22
dubbo源码
Dubbo源码分析
系列-扩展机制的实现
Spring可扩展Schema像标签dubbo:monitor、dubbo:service、dubbo:provider等怎么读的,读完之后怎么又是怎么解析的呢?以上标签都是基于Spring可扩展Schema提供的自定义配置下面举个例子1)创建JavaBean首先设计好配置项,通过JavaBean来建模,如类PeoplepublicclassPeople{privateStringname;pri
qq418517226
·
2020-08-21 20:19
RPC
Dubbo源码分析
——扩展点机制
Dubbo作为开源框架,必须要提供很多的可扩展点。Dubbo的扩展点加载采用了微核心插件式的开发模式,它是比较符合OCP原则。微核心由一个插件生命周期管理容器,构成微核心,核心不包括任何功能,这样可以确保所有功能都能被替换,并且框架实现的功能,扩展者也一定能做到,以保证平等对待第三方。因此Dubbo框架自身的功能也采用了插件的方式来实现,不采用任何硬编码。通常微核心都会采用Factory,IoC,
yongshengcn
·
2020-08-21 19:17
dubbo
dubbo源码分析
-consumer端5-Filter
前面一篇
dubbo源码分析
中,我们对ClusterInvoker和LoadBalance进行了分析,可以知道ClusterInvoker在一批Invoker中选择了一个Invoker来进行调用,而这里的
csdnxingyuntian
·
2020-08-21 18:53
dubbo学习总结
Dubbo源码分析
(Filter)
有关Dubbo的介绍,在此就不多说了,在这里简单的分享一下,最近看dubbo源码的感受,阿里封装的东西,真心不错,下面就简单说一下Dubbo中的Filter。Filter是一种递归的链式调用,能够达到在远程调用真正执行的前后加入一些逻辑操作,相当于AOP的连接器,或者跟Servlet中的Filter概念是一样的。Dubbo中的Filter上图中就是dubbo中的所有的filter,比如经常用的并发
LuckyZhouStar
·
2020-08-21 18:12
Java学习
Dubbo源码之SPI
Dubbo源码分析
1.Dubbo的扩展机制在Dubbo的官网上,Dubbo描述自己是一个高性能的RPC框架。今天我想聊聊Dubbo的另一个很棒的特性,就是它的可扩展性。
weixin_33935505
·
2020-08-21 17:07
Dubbo源码分析
:URL总线和ExtensionLoader-框架基石
概述ExtensionLoader类为Dubbo框架SPI的实现类,相当于JDK的ServiceLoader,也实现了Spring的IOC功能,通过ExtensionLoader配合URL完成对应类实现的加载,是Dubbo框架高度可拓展性实现的基础。以下各个规则和实现都是在ExtensionLoader提供实现,如从META-INF目录获取SPI的类声明,Adaptive注解配合URL参数或pro
服务端开发
·
2020-08-21 17:40
Dubbo
Dubbo源码剖析
dubbo
源码
Adaptive注解
Activate注解
URL总线
dubbo源码分析
dubbo源码中包简介dubbo-rpc,rpc通讯协议的实现,其中最为核心的就是dubbo协议,以及一些业界主流的协议的集成。dubbo-rpc模块只关注rpc通讯协议,并不涉及底层实际的网络通讯代码。dubbo-remoting,rpc节点间实际网络通讯的代码在这一层实现。生产中主要使用netty作为rpc节点之间进行通讯的框架。transport层的代码关注起的是消息的发送和接受。excha
Maxwell_cz
·
2020-08-21 15:40
Dubbo源码分析
(三) 服务引用
下面我们来看一下服务引用的流程。Dubbo基于Spring的Schema扩展实现XML配置解析,DubboNamespaceHandler会将标签解析为ReferenceBean,ReferenceBean实现了FactoryBean,因此当它在代码中有引用时,会调用ReferenceBean的getObject方法进入节点注册和服务发现流程。先来看一下ReferenceBean的getObjec
skyguard
·
2020-08-21 13:24
分布式-Dubbo(1)-负载均衡策略
Dubbo源码分析
-集群容错之LoadBalance1.简介LoadBalance中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。
莫小点还有救
·
2020-08-20 17:39
分布式
dubbo
负载均衡
学习笔记
分布式-Dubbo(1)-负载均衡策略
Dubbo源码分析
-集群容错之LoadBalance1.简介LoadBalance中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。
莫小点还有救
·
2020-08-20 17:39
分布式
dubbo
负载均衡
学习笔记
dubbo源码分析
18 -- 服务监控
在分布式服务当中监控服务的各项指标至关重要,而dubbo也提供了一个简单的监控中心(SimpleMonito)。SimpleMonitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险。并且配置好了之后可以结合admin管理后台使用,可以清晰的看到服务的访问记录、成功次数、失败次数等.....SimpleMonitor采用磁盘存储统计信息,请注意安装机器的磁
carl_zhao
·
2020-08-19 19:33
dubbo源码分析
之consumer端调用原理-22
在前面的文章中,我们分析了dubbo从provider进行服务暴露,然后把服务信息注册到注册中心上面解耦consumer与provider的调用。consumer通过javassist创建代理对象引用远程服务。当通过代理对象调用远程服务的时候,讲到进行真正调用的时候dubbo抽象出集群容错(Cluster、Directory、Router、LoadBalance)从服务多个暴露方选取出一个合适的I
Jack老师
·
2020-08-19 10:55
dubbo专题
dubbo源码分析
SPIDubbo采用微内核+插件体系。设计优雅,可扩展性强。微内核+插件体系的实现是基于SPI机制。(serviceproviderinterface)框架定义服务标准接口,使用者可以自己扩展服务实现。1,Dubbo定义了@SPI注解对于打了@spi注解的接口,dubbo会从以下目录依次查找实现。META-INF/dubbo/internal///dubbo内部实现的各种扩展都放在了这个目录了ME
Y叔
·
2020-08-19 08:17
dubbo
Dubbo源码分析
(一) 服务启动入口
入口模块dubbo-container-api入口方法解析com.alibaba.dubbo.container.Main入口类Main设计得并不复杂,主要干了三件事情:通过SPI加载具体的容器实例注册JVM关闭钩子,实现优雅停机服务启动与阻塞加载dubbo容器实例代码:publicclassMain{publicstaticfinalStringCONTAINER_KEY="dubbo.cont
GrooveWind
·
2020-08-19 00:09
dubbo源码分析
-创建Registry
dubbo在跟注册中心(Registry)通信之前,首先要创建RegistryProxy,才能subscribe(订阅服务)和register(注册服务)。如下图的6,8。在dubbo中,RegistryProxy和其他代理没有什么不同,同样是Registry的一个映像。因此创建普通Proxy的过程同样适用于RegistryProxy。publicRegistrycreateRegistry(UR
u2244118984
·
2020-08-18 09:23
Dubbo
dubbo源码分析
系列——dubbo-rpc-api模块源码分析
2019独角兽企业重金招聘Python工程师标准>>>简化的类图该图是经过简化后的rpc-api模块的类图,去除了一些非关键的属性和方法定义,也去除了一些非核心的类和接口,只是一个简化了的的示意图,这样大家能够去除干扰看清楚该模块的核心接口极其关系,请点击看大图更清晰一些。核心类说明Protocol服务协议。这是rpc模块中最核心的一个类,它定义了rpc的最主要的两个行为即:1、provider暴
weixin_34223655
·
2020-08-17 09:13
dubbo源码分析
- 集群容错之Cluster(一)
1、集群容错的配置项failover-失败自动切换,当出现失败,重试其他服务器(缺省),通常用于读操作,但重试会带来更长的延时。failfast-快速失效,只发起一次调用,失败立即报错。通常用于非幂等性写操作,比如说新增记录failsafe-失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作failback-失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作forking-并行
weixin_30662849
·
2020-08-17 09:46
Dubbo源码分析
-Dubbo中的动态生成类
Dubbo源码分析
-Dubbo中的动态生成类自适应扩展机制中的Adaptive类自适应扩展机制说明Adaptive类实现自适应SPI实现类的类型重要数据结构服务引用中的接口代理类服务引用的实现动态生成接口代理类的过程重要数据结构方便获取类信息的
swordyijianpku
·
2020-08-17 09:12
Dubbo
dubbo源码分析
-consumer端3-Invoker创建流程
从前面一篇创建注册中心的流程当中,我们知道在从注册中心获取到provider的连接信息后,会通过连接创建Invoker。代码见com.alibaba.dubbo.registry.integration.RegistryDirectory的toInvokers方法://protocol实现为com.alibaba.dubbo.rpc.Protocol$Adpative,// 之前已经讲过,这是du
iteye_21078
·
2020-08-17 08:40
dubbo
Dubbo RPC只要一个长连接就可以收发所有请求,为什么Spring Cloud不行?
试下这篇能不能把去年写的
Dubbo源码分析
系列文章重新激活DubboRPC使用dubbo协议只需要一个长连接就可以收发所有请求,为什么使用http协议的SpringCloud即便使用长连接也需要连接池呢
Java艺术
·
2020-08-14 16:19
Dubbo RPC只要一个长连接就可以收发所有请求,为什么Spring Cloud不行?
试下这篇能不能把去年写的
Dubbo源码分析
系列文章重新激活DubboRPC使用dubbo协议只需要一个长连接就可以收发所有请求,为什么使用http协议的SpringCloud即便使用长连接也需要连接池呢
Java艺术
·
2020-08-14 16:19
netty
http
rpc
socket
java
我的架构梦:(二十五)
Dubbo源码分析
之整体架构设计
一、源码下载和编译1、dubbo的项目在github中的地址为:https://github.com/apache/dubbo2、进入需要进行下载的地址,执行gitclonehttps://github.com/apache/dubbo.git3、为了防止master中代码不稳定,进入dubbo项目cddubbo可以切入到最近的release分支gitcheckout2.7.6-release4、
riemann_
·
2020-08-10 00:04
我的架构梦
我的架构梦:(二十八)
Dubbo源码分析
之集群容错源码剖析
Dubbo源码分析
之集群容错源码剖析一、前言二、信息缓存接口Directory三、路由规则实现原理四、Cluster组件五、负载均衡实现原理六、Invoker执行逻辑一、前言在对集群相关代码进行分析之前
riemann_
·
2020-08-10 00:04
我的架构梦
我的架构梦:(二十六)
Dubbo源码分析
之服务注册与消费源码剖析
Dubbo源码分析
之服务注册与消费源码剖析一、注册中心Zookeeper剖析二、服务的注册过程分析三、URL规则详解和服务本地缓存四、Dubbo消费过程分析一、注册中心Zookeeper剖析注册中心是Dubbo
riemann_
·
2020-08-10 00:04
我的架构梦
我的架构梦:(二十九)
Dubbo源码分析
之网络通信原理剖析
Dubbo源码分析
之网络通信原理剖析一、数据包结构详解二、数据协议ExchangeCodec详解三、处理粘包和拆包问题这一篇我们主要来讲Dubbo在网络中如何进行通信的。
riemann_
·
2020-08-10 00:04
我的架构梦
我的架构梦:(二十七)
Dubbo源码分析
之扩展SPI源码剖析
Dubbo源码分析
之扩展SPI源码剖析一、getExtensionLoader加载过程二、根据name获取扩展点的方法getExtension三、Adaptive功能实现原理基于DubboSPI加载机制
riemann_
·
2020-08-10 00:04
我的架构梦
dubbo源码分析
-服务发布
1.dubbo定义的服务,通过spring.handerls对应到DubboNamespaceHandler类//DubboNamespaceHandler的init()方法进行配置解析注册registerBeanDefinitionParser("application",newDubboBeanDefinitionParser(ApplicationConfig.class,true));re
futureluck
·
2020-08-07 23:48
dubbo
dubbo源码分析
系列——dubbo的SPI机制源码分析
2019独角兽企业重金招聘Python工程师标准>>>dubbo的SPI机制关于dubbo的SPI机制请参阅dubbo开发者文档->http://dubbo.io/Developer+Guide-zh.htm#DeveloperGuide-zh-%E6%89%A9%E5%B1%95%E7%82%B9%E5%8A%A0%E8%BD%BD我只把我自己理解的SPI与大家分享一下:SPI是面向dubbo开
weixin_34122548
·
2020-08-04 20:59
dubbo源码分析
SPI机制、provider、consume启动与consume调用provider流程
1.dubbospi机制以dubbo源码的dubbo-demo-provider为例说明dubbo-demo-provider.xml内容如下spring容器启动,会去解析自定义的标签,dubbo的标签定义都在DubboNamespaceHandler内,具体解析就不说了,这个看过spring源码的都知道,不知道也没关系,不影响理解dubbo,下面说下每个dubbo标签的功能创建Applicati
yulewo123
·
2020-07-29 02:22
dubbo
源码分析
dubbo源码分析
-dubbo-container-spring
dubbo-container-spring只有一个类,SpringContainerimplementsContainerSpringContainer继承Container,有两个方法start和stop/***SpringContainer.(SPI,Singleton,ThreadSafe)*/publicclassSpringContainerimplementsContainer{pu
一任天然
·
2020-07-29 01:03
dubbo
分布式-Dubbo(1)-负载均衡策略
Dubbo源码分析
-集群容错之LoadBalance1.简介LoadBalance中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。
莫小点还有救
·
2020-07-28 18:04
分布式
dubbo
负载均衡
学习笔记
三、
dubbo源码分析
-服务发布与注册
一、概括Dubbo服务发布始于Spring容器Refresh刷新事件,接收到事件后,执行服务发布逻辑。整个逻辑大致可分为三个部分:第一部分是前置工作,主要用于检查参数,组装URL。第二部分是导出服务,包含导出服务到本地(JVM),和导出服务到远程两个过程。第三部分是向注册中心注册服务,用于服务发现。二、Dubbo与Spring的关系服务发布的入口类是一个叫ServiceBean的类,查看它的引用,
词汇族
·
2020-07-27 16:34
Dubbo
rpc
java
dubbo
spring
zookeeper
二、
dubbo源码分析
-前置知识SPI
一、SPI机制介绍在Dubbo中,SPI机制贯穿整个Dubbo的核心,不断反复反复的使用,后面就可以看到。SPI全称为ServiceProviderInterface,是一种服务发现机制。不过,Dubbo并未使用Java原生的SPI机制,而是对其进行了增强,使其能够更好的满足需求本质原理SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态
词汇族
·
2020-07-27 16:03
Dubbo
dubbo源码分析
-dubbo-cluster
dubbo-clusterdubbo-cluster集群模块:将多个服务提供方伪装为一个提供方。LoadBalance/***randomloadbalance.**/publicclassRandomLoadBalanceextendsAbstractLoadBalance{publicstaticfinalStringNAME="random";privatefinalRandomrandom
一任天然
·
2020-07-27 14:30
dubbo
dubbo源码分析
-dubbo-serialization
dubbo-serializationdubbo-serialization是dubbo中实现序列化相关的代码。共5种序列化方式,可从名字直接看出含义,这里不再赘述。dubbo-serialization-fastjsondubbo-serialization-fstdubbo-serialization-hessian2dubbo-serialization-jdkdubbo-serializa
一任天然
·
2020-07-27 14:29
dubbo
11、
dubbo源码分析
之 服务引用
在使用dubbo的时候,我们对于远程服务调用是无感知的。当需要调用远程服务的时候我们只需要进行以下配置,就可以像本地调用的方式调用远程服务:下面的图片是dubbo官方服务消费者消费一个服务的详细过程的图:这里写图片描述dubbo的服务引用其实就是把上面的配置解析成dubbo框架的ReferenceConfig(接口引用配置类),然后调用ReferenceConfig类的init方法调用Protoc
carl_zhao
·
2020-07-13 05:36
为什么程序猿996会猝死,而企业家007却不会?
内推邮箱【
[email protected]
】,响应P99非常小其实,也可以关注公众号,不取关的那种哦然后留言,我会主动联系你哟后面还会继续更新Apache
Dubbo源码分析
和ElasticSearch
吴小胖本胖
·
2020-07-12 17:16
Dubbo源码分析
——Dubbo SPI
Dubbo采用微内核+插件模式的设计原则,微内核负责组装插件,也就是Dubbo的所有功能点都可被用户自定义扩展所替换。微内核是由DubboSPI机制实现的,因此了解DubboSPI是非常重要的。DubboSPI简介DubboSPI从JDK标准的SPI(ServiceProviderInterface)扩展点发现机制加强而来,改进了JDK标准的SPI的以下问题:无法获取指定的扩展实现。JDK标准的S
codersm
·
2020-07-10 19:18
Dubbo源码分析
--Dubbo-Client线程池机制
DUbbo-Client默认的线程池是CachedThreadPool/***此线程池可伸缩,线程空闲一分钟后回收,新请求重新创建线程,来源于:Executors.newCachedThreadPool()**@seejava.util.concurrent.Executors#newCachedThreadPool()*@authorwilliam.liangf*/publicclassCach
weixin_39500241
·
2020-07-10 09:37
dubbo
上一页
1
2
3
4
5
6
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他