分布式 RPC 服务框架 Apache Dubbo

分布式 RPC 服务框架 Apache Dubbo

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) 伸缩性:

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

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

的码云指数为
超过 的项目
加载中

评论(45)

B
BugMeYep

引用来自“lala_”的评论

是不是跟spring cloud 一样的东西,没用过dubbo,看介绍是差不多功能!
是的。(没用过spring cloud
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

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

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

01/18 07:47

Dubbo 2.6.5 发布,里程碑版本 2.7.0 前哨

在下一个里程碑版本2.7.0中,Dubbo 将围绕 异步支持优化、元数据改造,支持配置中心,路由规则优化和引入JDK8的特性等方面提升服务调用和服务治理的效率,以及可扩展性。此外还会增强一些功能...

2018/11/27 11:09

Apache Dubbo 2.6.5 发布,分布式 RPC 服务框架

Apache Dubbo 2.6.5 已发布,包含功能改进、新特性、bug 修复和性能优化。 Enhancements / Features: 重构 @service 的 BeanName 的生成规则 #2235 为 ServiceBean 的导出引入新的 Spring A...

2018/11/23 15:48

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...

2018/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...

2018/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...

2018/07/26 17:49

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

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

2018/06/07 22:05

没有更多内容

加载失败,请刷新页面

27
回答
Dubbo 重启维护一年多,现在还活着吗?

Dubbo 去年宣布重启维护,到现在已经一年有余,当初重启的消息在开发者中引起了强烈的反响,很多人看好,也有人持怀疑的态度,甚至到今天,还是有不少人认为 ...

01/10 15:07
17
回答
北上广的程序员,达到多少薪资才敢买房?

由于目前行业环境以及生存所迫,作为北上广深的程序员,不得不首先考虑两件事: “我真的决定扎根在这儿吗?” “我真的买得起这儿的房吗?” 【房价,是爱恨情仇...

01/04 14:57
5
回答
zookeeper+dubbo实现分布式服务调用,提供者关闭后重新注册,消费者一定要重启吗?

提供者关闭重启,消费者不重启,就会down,怎么解啊 2017-08-16 16:18:36.790 [DubboClientReconnectTimer...

2017/08/16 16:19
2
回答
Windows环境下Dubbo编译失败
thatgame 的回答 2018/12/17 15:12
最佳答案
看官方手册,编译步骤和指令, 看起来是某个Module 编译失败了,缺少一些依赖资源。 可以尝试修改pom.xml卸载取消编译这个模块
55
回答
2018 年度最受欢迎中国开源软件 TOP20 正式揭晓

11月12日,由开源中国主办,蒲公英协办的“2018 年度最受欢迎中国开源软件评选”活动正式上线。经过 21 天的投票决选,「2018 年度最受欢迎中国开...

2018/12/06 08:03
2
回答
替代webservices的方法?

以前用webservices做了很多服务给第三方使用,现在大多数要求使用http+json形式提供接口,请问有什么可行的方法吗?dubbo 服务支持跨应 ...

2018/12/04 11:07
7
回答
zookeeper里多个服务提供者,程序如何访问指定的服务?

现在有A、B、C、D四个服务项目,都注册在一个注册中心。 4个客户端项目,a,b,c、d项目固定访问自己对应的服务项目。 怎么样可以让a项目访问B或者C或...

2018/11/19 13:24
3
回答
dubbo调用外部注册中心的接口

项目用zookeeper做注册中心。 程序里配置了自己的注册中心A,现在要调用另外一个注册中心B的接口。B里的接口和A里的完全一样,只是各自连接的数据库不...

2018/11/19 13:08
6
回答
请教各位大大: 前后端分离 后端应该用什么 权限验证框架?
crystalsis 的回答 2018/11/12 11:24
最佳答案
后端权限验证还是shiro或者spring security,差别是shiro需要自己改造成不依赖session的,spring security直接支持,不过其实前后端分离之后尽管大部分人推荐无状态,但也还可以用session,无状态就是登录过程给前端一个jwt格式的token,前端请求的时...
1
回答
dubbo2.5.1 版本 使用XML配置 报Caused by: java.lang.IllegalStateException: Duplicate monitor configs

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

2018/11/09 16:53

没有更多内容

加载失败,请刷新页面

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

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

2018/01/13 17:27
145
0
跟我学习dubbo-Dubbo监控中心的介绍与简易监控中心的安装(7)

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

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

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

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

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

2016/12/13 21:38
210
0
dubbo 应用 笔记-------多个application name冲突问题

一个web应该项目 引用多个dubbo服务时 多个 <dubbo:application name报错 情景: Web项目A Dubbo接口服务B Dubbo接口服务C A引用B和C 这时候 因为 B中配置: <dubbo:application id="testBDub...

2013/06/13 10:01
3K
0
dubbo入门

前言 dubbo作为当今微服务盛行的两大主流微服务框架之一,是阿里巴巴的开源项目之一,相对于spring cloud,有更好的中文文档支持。虽然之前有段时间dubbo处于维护荒废的阶段,但是这两年交给...

2018/08/12 00:21
45
1
Dubbo (二) ——- 项目结构解析

本文主要说明点 概述 背景 需求 架构 Dubbo源代码项目结构 概述 分享 Dubbo 的项目结构 ,通过本文可以大致了解到Dubbo整个项目的结构 背景 将一个项目进行拆分, 进行分布式架构。 需要解决...

2018/10/16 15:49
597
1
简单spring和dubbo整合

首先新建两个web项目,并添加相关jar包。<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSche...

2016/11/07 16:22
198
0
Dubbo与Zookeeper、SpringMVC整合和使用

Dubbo与Zookeeper、SpringMVC整合和使用

2016/06/16 23:04
5.2K
4
spring boot整合dubbo

github: https://github.com/Athlizo/spring-dubbo-parent 码云: https://git.oschina.net/null_584_3382/spring-dubbo-parent 相关文档: Spring Dubbo 开发笔记(一)——概述: Spring D...

2017/03/01 00:45
1K
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部