标签:dubbo

Dubbo分析之Protocol层

前言 紧接着上文Dubbo分析之Exchange层,继续分析protocol远程调用层,官方介绍:封装RPC调用,以Invocation, Result为中心,扩展接口为Protocol, Invoker, Exporter; Protocol接口类分析 Protocol可以说是Dubbo的核心层了,在此基础上可以扩展很多主流的服务,比如:redis,Memcached,rmi,WebService,http(tomcat,jetty)等等;下面看一下接口类源码: 主要定义了2个接口,一个是暴露远程服务,另一个是引用远程服务,其实就是服务端和客户端;dubbo提供了对多种服务的扩展,可以查看M…

阅读全文 »

Dubbo分析之Exchange 层

系列文章 Dubbo分析Serialize层 Dubbo分析之Transport层 Dubbo分析之Exchange 层 前言 紧接着上文Dubbo分析之Transport层,本文继续介绍Exchange层,此层官方介绍为信息交换层:封装请求响应模式,同步转异步,以 Request, Response 为中心,扩展接口为 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer;下面分别进行介绍 Exchanger分析 Exchanger是此层的核心接口类,提供了connect()和bind()接口,分别返回ExchangeClien…

阅读全文 »

Dubbo分析之Transport层

前言 上一篇文章Dubbo分析之Serialize层,介绍了最底层的序列化/反序列化层,本文继续分析Serialize层的上一层transport网络传输层,此层使用了现有的一些通讯开源框架(ex:netty,mina,grizzly)来做底层通讯,上文也做了简单介绍,本文将做更深入的了解; Transporter类分析 dubbo为通讯框架提供了统一的bind和connet接口,方便进行管理和扩展,封装在接口类:Transporter中: 提供了bind和connect接口,分别对应这服务器端和客户端,具体有哪些实现类,如下图所示: 以默认使用的netty框架为例,代码如下: 具体的服务器端…

阅读全文 »

Dubbo分析Serialize层

Dubbo整体设计 关于Dubbo的整体设计可以查看官方文档,下图可以清晰的表达Dubbo的整体设计: 1.图例说明 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口; 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系; 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类; 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把子类看作父类的同一个节点,线上的文字为调用的方法; 2.各层说明 config 配置层:对外配置接口…

阅读全文 »

Dubbo的一次体验与分析

Dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案; 其核心部分包含: 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。 架构图如下:来自官网 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的…

阅读全文 »