分布式 RPC 服务框架 Apache Dubbo

Apache Dubbo 分布式 RPC 服务框架

Apache
Java 查看源码»
跨平台
阿里巴巴
2011-10-21
dubbo

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。

主要核心部件:

  • Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制

  • RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能

  • Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

Dubbo 工作原理

  • Provider

    • 暴露服务方称之为“服务提供者”

  • Consumer

    • 调用远程服务方称之为“服务消费者”

  • Registry

    • 服务注册与发现的中心目录服务称之为“服务注册中心”

  • Monitor

    • 统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”

(1) 连通性:

  • 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小

  • 监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示

  • 服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销

  • 服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销

  • 注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外

  • 注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者

  • 注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表

  • 注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

(2) 健状性:

  • 监控中心宕掉不影响使用,只是丢失部分采样数据

  • 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

  • 注册中心对等集群,任意一台宕掉后,将自动切换到另一台

  • 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯

  • 服务提供者无状态,任意一台宕掉后,不影响使用

  • 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复

(3) 伸缩性:

  • 注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心

  • 服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

加载中

评论(44)

lala_
lala_
是不是跟spring cloud 一样的东西,没用过dubbo,看介绍是差不多功能!
T
ThunderCollect
2.6.0的 dubbo-admin哪去了?
理工男海哥
理工男海哥
估计,#Dubbo# 要捐给Apache了
JavaSon712
JavaSon712
vue.js火变全球,还有个中文的官网,#Dubbo#,#Druid#装的是什么逼
灬仒
灬仒
我有jar包可以发给你
格勒弗特
格勒弗特
怎么下载呀?求指点
漠_然
漠_然
你尽管更新,再用算我输 #Dubbo#
j
java僵尸
阿里重新开始维护了,最近版本修复了很多之前的遗留问题,很赞!
重生茧
重生茧
mark
钢蜘蛛
各位java工作两年以上的同志请加1号QQ群162483652,新手勿进。讨论java、spring、ibatis、mybatis、hadoop、javascript、jquery、keepalived、redis、mongodb、memcached、dubbo、activemq等技术

Dubbo 2.6.4 发布,分布式 RPC 服务框架

Dubbo 2.6.4 已发布,包含功能改进、新特性、bug 修复和性能优化。 Enhancements / Features Support access Redis with password, #2146 Support char array for GenericService, #2137 Dir...

10/15 14:28

Dubbo 2.6.3 正式版发布,分布式 RPC 服务框架

Dubbo 2.6.3 正式版发布了,带来了功能增强、新特性、bug 修复、性能优化和 Hessian-lite。 功能增强/新特性 Support implicit delivery of attachments from provider to consumer, #889 S...

09/13 17:06

Dubbo 2.6.3 预览版发布,分布式 RPC 服务框架

Dubbo 2.6.3 预览版已发布,列出了即将到来的正式版本所包含的更新内容: 改进/特性 Support implicit delivery of attachments from provider to consumer, #889 Support inject Spring bea...

07/26 17:49

RPC 服务框架 Dubbo 2.6.2 正式发布, 包含多项重要改进

Dubbo 2.6.2 现已正式发布。 该版本包含了一些重要的改进: Hessian-lite 序列化:为了兼容性,恢复本地序列化 #1413 Asset transfer to ASF,包括 pom, license, DISCLAIMER 等 #1491 引入新...

06/07 22:05

Dubbo 2.6.2 发布,分布式 RPC 服务框架

Dubbo 2.6.2 已发布,这是一个 Snapshot 版本,没有找到详细的更新内容,可先查阅提交记录了解详情。 由于 Dubbo 2.6.0 已合并当当网提供的 Dubbox 分支,后续发布的几个版本更多的是在做一些...

05/28 15:35

RPC 服务框架 Dubbo 2.5.10 和 2.6.1 发布,Bug 修复

Dubbo 2.5.10 和 2.6.1 已发布。 Dubbo 2.6.1 是改变结构后首次发布的版本,此前我们曾报道过,Dubbo 2.6.0 已合并当当网提供的 Dubbox 分支。 而 2.5.10 主要是修复了 bug: TimeUnit conve...

03/19 10:58

Dubbo 通过投票,正式进入 Apache 基金会孵化器

2 月 9 日,Apache 基金会的邮件列表上发起了讨论是否接纳阿里的 Dubbo 项目进入 Apache 孵化器的投票。 2月15日,邮件列表显示,Dubbo 获得了 14 张赞成票,在无弃权和反对票的情况下,正式...

02/18 08:08

没有更多内容

加载失败,请刷新页面

6
回答
请教各位大大: 前后端分离 后端应该用什么 权限验证框架?

请教各位大大: 前后端分离 后端应该用什么 权限验证框架? 例如:oauth2、jwt、shiro 各有什么优缺点? 到底哪种解决方案更好?或者说更常用。。

11/08 18:54
1
回答
dubbo2.5.1 版本 使用XML配置 报Caused by: java.lang.IllegalStateException: Duplicate monitor configs

dubbo2.5.1 版本 使用XML配置 报Caused by: java.lang.IllegalStateException: Duplicate ...

11/09 16:53
2
回答
dubbo 分布式 注册中心全部宕机 消费者依然能通信

dubbo 分布式框架,服务提供者第一次启动注册服务到zk 中 消费者第一次启动订阅zk中的服务地址 并且会缓存一份到本地服务列表中, 我想问的是如何做的...

11/05 16:36
3
回答
Dubbo消费端捕获到服务提供者抛出的自定义异常,e.getMessage(),返回并不是message信息,而是整个异常的堆栈信息,请问怎么解决?

Dubbo消费端捕获到服务提供者抛出的自定义异常,e.getMessage(),返回并不是message信息,而是整个异常的堆栈信息,请问怎么解决?我需要...

11/05 15:19
19
回答
【开源访谈】刘军:无需“二选一”,Dubbo 将积极适配 Spring Cloud 生态

曾风靡国内的开源 RPC 服务框架 Dubbo 在重启维护后,令许多用户为之雀跃,但同时,也迎来了一些质疑的声音。互联网技术发展迅速,Dubbo 是否还能...

01/08 18:19
5
回答
HSF和Dubbo有什么区别?
jobell 的回答 2015/06/15 18:01
最佳答案
我觉得不是hsf更好,hsf在设计上和淘宝的遗留的项目接合的比较紧密。没有必要在迁移到dubbo上对原有的系统进行整改,并且加大风险。
4
回答
分布式事务的主流解决办法是什么了?
cion 的回答 08/07 18:43
最佳答案
都是柔性的,记录日志(mq或者数据库),根据日志消费情况做事务补偿之类的。
1
回答
dubbo 服务端设置超时终止执行

dubbo设置超时时间后,无论实在服务端还是消费端设置了,都只会造成消费端超时。但是服务端还在继续执行,有什么办法或者参数配置,可以在超时的时候直接终止服...

09/08 16:10
5
回答
Dubbo的com.alibaba.dubbo.monitor.MonitorService提供者的问题
Gillian_Male 的回答 2016/07/17 18:14
最佳答案
这是哥监控,没有这个服务dubbo照样运行的。。。不过你可以配置好的。: Forbid consumer 192.168.0.109 access service 这个提示不是说了么

没有更多内容

加载失败,请刷新页面

dubbo源码学习笔记----整体结构

## dubbo核心包 ### config - dubbo-config-api - dubbo-config-spring ### remoting - dubbo-remoting-netty - dubbo-remoting-netty4 - dubbo-remoting-mina - dubbo-remoting-grizzly - d...

01/13 17:27
99
0
dubbo源码编译

dubbo2.4.11 为例

2016/06/16 14:03
203
1
dubbo2.4.11源码编译

本文以dubbo2.4.11源码编译和打包例

2015/08/20 00:23
6.7K
5
跟我学习dubbo-Dubbo监控中心的介绍与简易监控中心的安装(7)

Dubbo 监控中心的介绍与简易监控中心的安装 Dubbo 服务提供者和服务消费者中的 spring 配置文件中增加以下配置 Dubbo 简易监控中心的配置解释(不需要修改,使用默认配置) 重新启动 dubbo-...

2016/01/12 01:52
1K
1
史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 ...

10/02 10:16
61
0
Spring Boot与Dubbo集成

本文主要介绍了springboot如何与rpc框架dubbo集成,构建微服务

2016/12/13 21:38
186
0
dubbo-monitor-simple 安装

dubbo-monitor-simple 安装 install dubbo简单监控中心

2015/12/30 23:59
1K
0
dubbo 在centos7下安装

1.解压apache-tomcat-8.0.52.tar.gz到当前目录,重命名为:dubbo-Tomcat 2.将dubbo-admin-2.6.0.war解压到webapps下,dubbo-admin-2.6.0重命名为ROOT 3.修改WEB-INF下的dubbo.properties文件...

10/23 22:36
12
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部