文档章节

Dubbo架构设计详解

北天_
 北天_
发布于 2015/11/05 09:47
字数 502
阅读 134
收藏 10

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。

总体架构

Dubbo的总体架构,如图所示:

输入图片说明

Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口。 下面,结合Dubbo官方文档,我们分别理解一下框架分层架构中,各个层次的设计要点:

输入图片说明

输入图片说明

输入图片说明

输入图片说明

输入图片说明

注册/注销服务 服务的注册与注销,是对服务提供方角色而言,那么注册服务与注销服务的时序图,如图所示:

输入图片说明

服务订阅/取消 为了满足应用系统的需求,服务消费方的可能需要从服务注册中心订阅指定的有服务提供方发布的服务,在得到通知可以使用服务时,就可以直接调用服务。反过来,如果不需要某一个服务了,可以取消该服务。下面看一下对应的时序图,如图所示:

输入图片说明

输入图片说明

输入图片说明

输入图片说明

参考链接

https://github.com/alibaba/dubbo http://alibaba.github.io/dubbo-doc-static/Home-zh.htm http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm http://alibaba.github.io/dubbo-doc-static/Developer+Guide-zh.htm http://alibaba.github.io/dubbo-doc-static/Administrator+Guide-zh.htm http://alibaba.github.io/dubbo-doc-static/FAQ-zh.htm

© 著作权归作者所有

北天_
粉丝 1
博文 16
码字总数 22071
作品 0
大连
后端工程师
私信 提问
惊艳,Dubbo域名已改,也不再局限于Java!!

今天作者想去 Dubbo 官网查下相关资料,发现官方域名由 dubbo.io 直接跳转至 dubbo.apache.org 下了,然后突然回想起 Dubbo 已经在 2 月份正式进入了 Apache 孵化器这回事,也就不觉得奇怪了...

java填坑路
2018/07/13
0
0
架构书籍推荐:Java中高级、架构师值得一读!

上周我们免费送出了6本关于Python的重量级技术书籍,推出后反响特别强烈,有一个和最后一名仅差了一个赞,不过我们还是额外加送了一本送给这位朋友,以资鼓励,从另一面也可以看出Java程序猿...

Java技术栈
2018/04/14
509
4
有经验JAVA程序员如何提升自己?

具有一到五年开发经验 需要学习内容很多 JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等等 01、透彻理解Tomcat原理手写动静态资源的实现 02、分...

阿阳啊啊
2017/11/29
0
0
Dubbo架构设计详解

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简...

ugali
2017/09/04
0
0
分布式 | Dubbo 架构设计详解

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简...

Java架构
2018/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 7 查找软件安装位置的方法

1、通过文件搜索查找 root@jun-virtual-machine:# find / -name "*squid*"/var/log/squid/var/spool/squid/var/lib/yum/yumdb/s/48a7dbee62d6d5962ed739a8e4fc117cf7378bfd-squid-3.5......

webcreazy
8分钟前
2
0
eureka 加入密码认证 springboot-admin 加入密码认证

1. pom.xml 加入依赖 <!-- 加入密码认证 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</ar......

java框架开发者
12分钟前
3
0
数字在排序数组中出现的次数

Input:nums = 1, 2, 3, 3, 3, 3, 4, 6K = 3Output:4 二分查找的练习 public int GetNumberOfK(int[] nums, int K) { int first = binarySearch(nums, K); int last = b......

Garphy
24分钟前
4
0
大厂面试经:高频率JVM面试问题整理!

JVM(Java虚拟机)简单来说就是运行Java代码的解释器,作为螺丝钉程序员JVM其实了解下就差不多啦,不懂JVM内部细节照样能写出优质的代码!但是一到造火箭、飞机的场景(面试)不懂JVM的你,会...

架构文摘
39分钟前
9
0
thinkphp5.1学习过程五——request

<?phpnamespace app\index\controller;//use \think\facade\Request;use \think\Request;/** * Class Demo3 * @package app\index\controller * 正常情况下,控制器不依赖......

大海yht
49分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部