自从去年7月份阿里宣布重启Dubbo维护以后,开源社区热度最高的两个问题:一是这次开源和以前有什么不一样的地方?二是阿里的Dubbo和Spring Boot、 Spring Cloud 是什么关系?

2018年5月12日(周六),我们将在北京举行Dubbo开发者沙龙暨第四届阿里中间件性能挑战赛技术行,为你答疑解惑。点击文末“阅读原文”,即可免费报名活动。名额有限,先到先得哦。

Dubbo是阿里巴巴自研的分布式服务框架,自2012年开源以来,深得开发人员的喜爱,并被广泛用于服务化解决方案中。自去年阿里巴巴中间件团队宣布重启维护后,在社区引起极大的反响,目前在github上的star数增加至18000,并于2018年2月正式加入Apache孵化器进行孵化。本次沙龙,将为大家介绍近期Dubbo所完成的一些工作及未来规划,并对第四届中间件性能挑战赛赛题“挑战Dubbo Agent”做出详细解读。

还不了解Dubbo的童鞋,下面让我们一起来深入学习。

Dubbo 的基本原理

简单的说,Dubbo是基于Java的RPC框架。如图所示,Dubbo工作分为4个角色,分别是服务提供者、服务消费者、注册中心、和监控中心。

Dubbo工作原理

按照工作阶段又分为部署阶段和运行阶段。其中部署阶段在图中以蓝色的线来表示,代表服务注册、服务订阅的过程,而运行阶段在图中以红色的线来表示,代表一次RPC的完整调用。部署阶段中服务提供方在启动时在制定的端口上暴露服务,并向注册中心汇报自身的地址,服务调用方启动时向注册中心订阅感兴趣的地址。运行阶段中注册中心首先将地址列表推送给服务消费者,服务消费者从其中选取一个地址向对端发起调用。在这个过程中,服务消费者和服务提供者的运行状态会上报给监控中心。

Dubbo整体架构图

从Dubbo的整体架构图来看,这张图从左往右看,分为两部分,左半边蓝色背景的部分代表服务消费者,右半边绿色背景的部分代表服务提供者。从上往下看又分为九层。看左边,九层按功能来划分又被分为了三大类,分别是面向用户的 biz,框架核心 RPC 以及负责远程传输的 Remoting,看图的右边按面向人群又划分为了两类,上面两层是面向用户的API,而下面七层是面向扩展提供者的SPI。

图中的线代表对象与对象之间不同的关系,紫色代表继承、黑色代表依赖、蓝色虚线代表服务注册、服务订阅的过程,也就是上面讲的部署阶段,红色代表一次完整的RPC调用,也就是运行阶段。顺着红色的线,可以体验一次完整的 RPC 调用是如何进行的。

首先从图的左边开始,用户从 Proxy 层发起一次RPC调用,Dubbo 从 Registry 层拿到服务的地址列表,再通过 Cluster 层选择其中的一个作为目标地址,再流经Protocol 决定的执行链,最后将服务信息,包括要调用的服务名、方法名、参数等序列化,再经过应用协议编码,通过 Transport 层发送到网络上。右边的服务提供者从网络上收到数据以后,从下往上,依次通过应用协议解码、反序列化得到要调用的服务信息,再经由执行链,最终通过 Invoker 找到目标服务的目标方法,执行并返回结果。

解读完Dubbo的架构图,再来看看架构图中体现的设计原则。

Dubbo秉承高内聚、低耦合的设计,这一点体现在架构图中九层的清晰划分上,也体现在依赖的方向上。线条的方向永远是从上指向下,没有循环依赖和反向依赖的出现。Dubbo还有一个很重要的设计哲学就是平等对待第三方的扩展,即Dubbo内建的功能也是通过同样的扩展机制提供出来的,第三方的扩展和内建功能可以相互取代。正是由于Dubbo将第三方扩展当成框架的一等公民,为未来基于这个机制建立生态带来了可能性。

Dubbo 开源的现状

从数据维度来看,去年7月重启至今,Dubbo 在 github 上的 star 数增长了 77% ,达到了 1.8 万,目前在 github java 类项目中排名 11 位,在去年开源中国举办的2017最受欢迎的开源项目中 Dubbo 和阿里巴巴其他三款软件 fastjson、druid、rocketmq 共同入选。

从用户来看,主要有3种类型,第一类是以阿里巴巴,滴滴,当当为代表的互联网企业;第二类是向互联网转型的大型企业,其中有中国工商银行、中国电信和中国人寿;第三类是使用Dubbo作为服务化方案的 ISV,如亚信,文思。这些企业中,有一些维护着自己的私有分支,有些企业的员工积极参与Dubbo的建设,在这次进入Apache孵化的过程中,当当、去哪儿、微店的员工成为了初始成员。5月12日,Dubbo将在北京车库咖啡举行首次线下沙龙。

Dubbo 未来规划与进入 Apache 孵化

Dubbo 后续规划主要围绕技术趋势与自身定位两块:从技术趋势来看,主要包含3个方面:

第一方面:模块化和元数据。通过这两块的优化来解决适应未来技术方向的问题,也就是微服务和云原生,具体来说,目前 Dubbo 服务治理与网络传输耦合严重,通过进一步的模块化工作可以为 Dubbo 成为服务网格中的数据面板做好准备,元数据目前即包含服务注册信息,也包含服务配置信息,将两者分离可以更清晰地分开注册层和配置层,为适配微服务的注册中心和配置中心打好基础。

第二方面:如何将阿里在服务治理方面的经验回馈给社区。其中包括了路由策略、大流量和大规模,在路由策略中阿里打算引入多机房路由、参数路由、灰度路由等策略,在大流量方面重点考虑熔断、限流、隔离的支持,在大规模集群方面需要解决超大规模地址列表对CPU、内存带来的压力。

第三方面:增强异步化。包括对 CompletableFuture 的支持以及跨进程 Reactive Stream 的预研,目前 Reactive Stream 在 Dubbo 3.0 中正在孵化,压测表明这项技术对于提升 CPU 利用率和系统的吞吐率有极大帮助。

Dubbo进入Apache孵化的历程,分为三个阶段:准备阶段、孵化阶段和毕业阶段。

Apache 孵化阶段

目前Dubbo已经完成了第一个环节,之后就是在导师的指导下按照Apache的规范做版本迭代、运营社区、发展更多的committer,如果最终通过了成熟度评估,就可以顺利毕业成为Apache的顶级项目。

想要了解更多Dubbo的现状及发展计划,获得Dubbo专家的现场指导?

欢迎访问:https://jinshuju.net/f/3mWDC9,立即报名参加沙龙!

北京沙龙报名 | 关于Dubbo开源的那些事儿相关推荐

  1. 【美团·北京沙龙报名】AI在外卖场景中的最佳实践

    [美团技术沙龙]由 美团技术团队 和 美团科协 主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域. 活动时间:2019年12月7日 13:30-17:30 活 ...

  2. 【美团 · 北京沙龙报名】运营效率系统架构演进之道

    [美团技术沙龙]由美团技术团队和美团科协主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域. 活动时间:2018年12月8日 14:00-17:30 活动地址: ...

  3. 带你走进B类玩法:从新零售走向新制造的B类电商平台 | 北京沙龙报名

    时代浪潮开始从新零售走向新制造,CBU电商平台通过商家成长体系.数据体系.营销体系.广告体系.开放平台.交易支付体系等八大矩阵打造数字商业基础设施,帮助中小企业实现线下交易和营销的线上化,让中小企业步 ...

  4. Dubbo开源现状与未来规划

    摘要: Dubbo 在过去一段时间疏于维护,去年阿里高调宣布重启 Dubbo 开源之后,社区里问的最多的问题是,这次开源与上次有什么一样,还有就是 Dubbo 和 Spring Boot.Spring ...

  5. 沙龙报名 | 探索新零售时代的数字化创新

    沙龙报名 | 探索新零售时代的数字化创新 互联网技术正在重塑新零售的消费场景,使顾客消费思维发生改变.消费习惯由价格时代转为价值时代.同时,体验需求得到升级.新零售在"人.货.场" ...

  6. Apache RocketMQ 深圳沙龙报名开启!

    摘要: Apache RocketMQ深圳沙龙报名正式开启.12月16日,Apache RocketMQ将在深圳举办线下沙龙!届时,社区里的PMC Member.Committer.深度用户,来自各路 ...

  7. Dubbo学习总结(6)——Dubbo开源现状与未来规划

    前言 http://dubbo.incubator.apache.org/zh-cn/docs/user/preface/background.html 大家好,非常荣幸有机会和大家做这个分享.我先做 ...

  8. Geek 青年说北京沙龙分享

    你好,我是看山. 5 月 23 号参加了 infoQ 写作平台组织的线下沙龙,瞻仰了很多大佬的英姿.在 Geek 青年说的环节,也壮起胆量上台分享了自己的一些观点.第一次上台,面对台下的大佬们,难免有 ...

  9. 独家专访阿里高级技术专家北纬:Dubbo开源重启半年来的快意江湖

    摘要: 罗毅,花名北纬.这个名字,如果是混过天涯论坛的大龄网民应该都不陌生,北纬67度3分周公子(简称北纬)虐杀易烨卿MM的世纪大战至今还是天涯神贴 ,当时更是有看客赋诗形容:"目睹此帖,开 ...

最新文章

  1. 永磁同步电机转子磁链_永磁同步电机介绍
  2. [原创]Android Monkey测试工具使用介绍
  3. 中运用_胶水在木雕中的运用技巧
  4. Linux之Centos允许root连接ftp
  5. 基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统
  6. JavaWeb进度报告1
  7. [Javascript]史上最短的IE浏览器判断代码
  8. php的implode函数的作用是,PHP函数implode介绍
  9. React(4. 2)--数据流(实践篇)
  10. 838计算机考研用书,河海计算机838考研大纲(5页)-原创力文档
  11. 【论文翻译】EIDETIC 3D LSTM: A MODEL FOR VIDEO PREDICTION AND BEYOND
  12. php网站恶意注册表,利用注册表对付恶意网站篡改IE主页
  13. day 1 | 704. 二分查找、27. 移除元素
  14. 第二章:Swagger2
  15. 西子子1200与编码器
  16. 计算机软件著作权申请表中开发运行环境、技术特点等项目的编写指南
  17. python +selenium 爬取淘宝网商品信息
  18. 微信视频号+QQ“小世界”,腾讯围剿抖音
  19. 骨传导运动耳机哪个牌子好,四大品牌骨传导运动耳机推荐
  20. 餐饮水单打印软件_餐饮食材供应链在线订货软件管理订单怎么样?系统好用吗?...

热门文章

  1. 又一个可视化神器Highcharts,Python版也有哦!
  2. 干货 | 从零进阶数据分析学习资料汇总(限时福利)
  3. 爬一爬那些年你硬盘存过的老师
  4. android 6.0权限封装,Android6.0------权限申请管理(单个权限和多个权限申请)
  5. idea 使用maven构建项目时,target bytecode version经常自动变化
  6. linux 网络的一些书籍
  7. Linux命令之sftp - 安全文件传输命令行工具
  8. 用线性单元(LinearUnit)实现工资预测的Python3代码
  9. 实验 6 数组1输出最大值和它所对应的下标
  10. JavaScript深入【表达式和运算符(上集)】你能过我8关js运算符的题目吗?