分布式 RPC 服务框架 Apache Dubbo

分布式 RPC 服务框架 Apache Dubbo

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

疫情之下,程序员如何转型?共享数字化转型加速度,就在微软在线技术峰会>>>

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

主要核心部件:

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

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

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

Dubbo 工作原理

  • Provider

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

  • Consumer

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

  • Registry

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

  • Monitor

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

(1) 连通性:

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

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

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

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

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

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

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

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

(2) 健状性:

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

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

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

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

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

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

(3) 伸缩性:

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

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

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

评论(51)

addUserName
addUserName
这玩意以前用来做过微服务,不过要做微服务的话建议还是用springCloud吧
编辑部的故事
编辑部的故事
#2019年度最受欢迎中国开源软件# 已经进行多日,目前 #Deepin##Apache Dubbo##O2OA##Vue.js##Mybatis-Plus##RuoYi# 分别排在各分类榜首。
Z
ZephyrShannon
健“壮”性 ,不是健 “状” 性
B
BugMeYep

引用来自“lala_”的评论

是不是跟spring cloud 一样的东西,没用过dubbo,看介绍是差不多功能!
是的。(没用过spring cloud
Forward233
Forward233
哈哈哈笑死 没用过还回复
lala_
lala_
是不是跟spring cloud 一样的东西,没用过dubbo,看介绍是差不多功能!
T
ThunderCollect
2.6.0的 dubbo-admin哪去了?
理工男海哥
理工男海哥
估计,#Dubbo# 要捐给Apache了
灬仒
灬仒
我有jar包可以发给你
格勒弗特
格勒弗特
怎么下载呀?求指点
漠_然
漠_然
你尽管更新,再用算我输 #Dubbo#

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

Apache Dubbo 2.7.4 发布了。Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。 新版本更新内容如...

2019/09/27 07:30

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

Dubbo 2.7.2 发布了。Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。 新版本更新内容如下: 新...

2019/05/30 06:59

Apache Dubbo 晋升为 Apache 基金会顶级项目

Apache 基金会发布公告,宣布 Apache Dubbo 从孵化器毕业,成为 Apache 基金会顶级项目。 Apache Dubbo 是在2018年2月进入 Apache 孵化。 Apache Dubbo 副总裁(Lan Luo)说:今天不只是 Ap...

2019/05/21 10:10

Dubbo 3.0 预览版解读,支持 Filter 链的异步化

自去年 12 月开始,Dubbo 3.0 便已正式进入开发阶段,并备受社区和广大 Dubbo 用户的关注,本文将为您详细解读 3.0 预览版的新特性和新功能。 下面先解答一下两个有意思的与 Dubbo 相关的疑问...

2019/04/19 10:46

Dubbo Metrics 发布新版本 2.0.1 | Dubbo 的度量统计基础设施

对服务进行实时监控,了解服务当前的运行指标和健康状态,是微服务体系中不可或缺的环节。Metrics 作为微服务的重要组件,为服务的监控提供了全面的数据基础。近日,Dubbo Metrics 发布了2.0...

2019/03/14 16:59

Dubbo 生态添新兵,Dubbo Admin 发布 v0.1

为了提升 Dubbo 里程碑版本2.7.0的使用体验,我们于去年年中启动了 Dubbo Admin 的重构计划,并作为Dubbo生态的子项目,于近期发布了v0.1,重构后的项目在结构上的变化如下: 将后端框架从W...

2019/02/21 14:17

里程碑 | Apache Dubbo 发布 v2.7.0

Dubbo 2.7.0 围绕异步支持优化、元数据改造,支持配置中心,路由规则优化和引入JDK8的特性等方面提升服务调用和服务治理的效率,以及可扩展性。经过社区投票,该版本已于近日发布。 一、新特...

2019/02/03 16:23

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

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

2019/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

没有更多内容

加载失败,请刷新页面

2
回答
dubbo泛化调用复杂参数

复杂参数 泛化调用dubbo服务如何 做参数转换: 请求参数 json格式(一个对象中内嵌一个集合;一个对象中内嵌基本类型+一个自定义对象+集合等等)这种...

03/10 11:12
3
回答
Dubbo消费者服务启动过程正常,但服务并没有启动

采用Dubbo和Zookeeper架构,使用maven构建多模块项目,我的模块是dubbo的消费者,项目启动过程并无异常,但访问localhost:端口 ...

2019/05/17 15:48
1
回答
SpringCloud和Dubbo ?

SpringCloud和Dubbo都是现在主流的微服务架构 SpringCloud是Apache旗下的Spring体系下的微服务解决方案 Dubbo是阿里...

02/26 14:33
5
回答
java反射类报空指针,求大神给个分析

java.lang.NullPointerException: null at sun.reflect.GeneratedConstructorAcces...

01/20 14:07
7
回答
JFinal可以与阿里的dubbo,负载均衡的nginx对接么?Jfinal适合用来做大型项目么?

@JFinal 你好,想跟你请教个问题: JFinal开发效率挺不错的。我们的应用将来的访问量会很大,肯定要考虑软负载、缓存、分布式服务等技术架构,JFi...

2014/11/12 13:20
3
回答
dubbo分布式服务中,怎么可以指定某个子服务接口的某个方法不能被调用?
颖辉小居 的回答 2019/10/17 20:44
最佳答案
找到方法了,dubbo管理后台可以指定。但是需要先启动应用将接口注册到zk,才可以在管理后台设置开启或关闭那些接口方法。防止启动后立即被调用,可以先将应用服务器的IP设置到dubbo管理的黑名单里。当注册成功并关闭所有方法后再撤销黑名单。然后可以一个个开启方法放开流量测试。
3
回答
微服务架构中列表和导出的问题

*架构介绍: 前端页面http请求gateway,usercore和filecore均是两个独立的dubbo服务,暴露rpc接口,gateway网关rpc...

2019/09/17 10:16
1
回答
spring boot整合dubbo

有谁知道spring boot整合dubbo,为什么springboot的主配置文件中的参数无法引入?

2019/09/07 22:28
2
回答
微服务开源生态报告 No.7

「微服务开源生态报告」,汇集各个开源项目近期的社区动态,帮助开发者们更高效的了解到各开源项目的最新进展。 社区动态包括,但不限于:版本发布、人员动态、项目...

2019/08/07 16:32
2
回答
集群或分布式环境下修改了共享变量用什么方式通知其他节点更新变量值
CAFEDADA 的回答 2019/08/07 06:13
最佳答案
支持发布订阅机制的中间件都可以吧,Redis、ZK、MQ等。

没有更多内容

加载失败,请刷新页面

跟我学习dubbo-Dubbo管理控制台的安装(3)

Dubbo 管控台可以对注册到 zookeeper 注册中心的服务或服务消费者进行管理,但 管控台是否正常对 Dubbo 服务没有影响,管控台也不需要高可用,因此可以单节点部署。 管理控制台主要包含:路由...

2016/01/05 02:52
3.6K
0
【JEECG Dubbo专题】jeecg-p3集成dubbo文档

一、项目介绍 二、项目分解说明 1 . p3dubbo-service 说明:该项目为简单的maven构建项目,无任何依赖引用,只作接口定义 接口定义如下: pom文件说明 2. p3dubbo-service 说明:该项目为接口...

2016/08/12 09:43
214
0
聊聊Dubbo - Dubbo可扩展机制实战

摘要: 在Dubbo的官网上,Dubbo描述自己是一个高性能的RPC框架。今天我想聊聊Dubbo的另一个很棒的特性, 就是它的可扩展性。 1. Dubbo的扩展机制 在Dubbo的官网上,Dubbo描述自己是一个高性能...

2018/06/04 17:31
381
1
dubbo源码编译

dubbo2.4.11 为例

2016/06/16 14:03
500
1
dubbo的消费者

pro-web: dubbo的消费者工程结构: 主要说,消费者的配置 在 webapp-servlet.xml <context:annotation-config /> <dubbo:annotation package="com.pro.controller" /> <context:component-...

2016/07/14 23:50
179
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotati...

2018/09/24 20:37
193
0
dubbo-monitor-simple 安装

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

2015/12/30 23:59
3.6K
0
springboot集成dubbo

springboot国外用的比较多,而dubbo国外又很少用,所有集成例子比较少。

2016/02/26 14:08
5.3K
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部