Apache Dubbo的开源现状和2.7版本规划(附PPT)

640?wx_fmt=png

Aliware Open Source•深圳站现场


随着互联网的发展,网站和应用的规模不断扩大,传统的烟囱式架构已经无法满足业务的需求,需要将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快的响应多变的市场需求,此时,分布式架构的出现较好的解决了这类业务需求。

 

阿里巴巴在其业务的高速增长过程中,在分布式架构和相关技术上进行了不断的探索,如分布式架构下的服务框架、海量业务的消息处理、关键业务的实时监控和全链路压测、数据库的水平扩展等。在此过程中,发展了一系列的互联网中间件,沉淀出“大中台、小前台”的架构来快速响应业务需求,从而支撑了阿里巴巴99%以上的大规模应用,并且最终以开源的方式回馈给社区,帮助开发者更简单、更快速的满足自身业务的需求。

 

Dubbo是阿里巴巴于2012年开源的分布式服务治理框架,并于2018年2月捐献给Apache,进入Apache孵化器,近期在Github的项目主页的star数获得了超过2万,是截止目前国内第一家也是唯一一家超过2万star数的 Java类开源产品。(截止发稿star数已经超过20400)

 

近日,在Aliware Open Source•深圳站-Apache Dubbo & Apache RocketMQ开发者沙龙上,阿里巴巴中间件技术专家 陈志轩 向开发者们分享了Dubbo的开源现状和2.7版本规划。本文是根据陈志轩的现场分享所整理,为大家回顾分享中的精彩内容。

640?wx_fmt=png

嘉宾介绍:陈志轩(断岭),阿里巴巴中间件技术专家,负责阿里巴巴容器开发,Spring Boot的微服务框架的落地,关注开发体验,微服务,APM和应用诊断技术。

 

☞ 公众号后台发送“深圳沙龙PPT”,下载全场PPT。

☞ 公众号后台发送“深圳沙龙视频”,观看全场回顾视频。


一、Dubbo 开源现状(一)- 不仅仅是使用者,更要是参与者 640?wx_fmt=png


现在是Cloud Native的时代,大家都非常重视开源,全世界很多企业都在参与进来,甚至开始把基础设施类产品都开源出来。我们希望Dubbo可以继续繁荣,并把大家对阿里巴巴比较感兴趣的大流量、跨机房的实践和总结输出到Dubbo上。在7月中旬,Dubbo的star数突破了2万,看得出国内的开发者对Dubbo有着比较高的期待,这也是我们前进的动力。目前Dubbo的用户分为互联网企业、向互联网架构转型的企业、用互联网架构做解决方案的企业,当当、去哪儿、微店和阿里巴巴成为了Dubbo进入 Apache 孵化的初始成员,其他还有包括网易考拉、滴滴出行、中国人寿、中国工商银行、金蝶、海尔也都在使用Dubbo,我们希望不仅是开发者,还有测试工程师、文档工程师都可以提建议给我们,成为Dubbo项目的Committer,共同发展Dubbo。开发者也可以把自己的公司信息提交到我们的issue上面,让大家知道你们对Dubbo的贡献,目前Dubbo上有很多新的feature就是有社区提交上来的。


Aliware Open Source•深圳站花絮


二、Dubbo 开源现状(二)- Dubbo正在做的事情 640?wx_fmt=png


我们在近期上线了Dubbo新的官网,并发布了新的logo,新官网进一步丰富了文档、博客和社区的内容,提供了中英文版本。文档几乎覆盖了Dubbo的开发和使用过程中可能涉及到的所有内容和需要注意的细节,可以帮助开发者无门槛、一站式使用分布式服务治理框架。新官网还提供了博客功能,我们希望更多的开发者可以将自己的开发感悟上载到博客页面,分享给其他开发者。

 

此外,我们还提供了全面升级的第三方库,包括Spring、ZooKeeper等。在全新的OPS中,我们汲取了阿里巴巴HSF在OPS上的经验来输出给Dubbo,取代原本不太好用的Dubbo-admin。我们从社区收集了使用量最大的几类语言,对客户端进行了扩展,开发者不再受语言的局限而无法使用到Dubbo。考虑到Service Mesh在微服务领域发挥着更大的作用,我们也正在制作envoy插件,以支持Dubbo协议,并考虑对Istio的集成。


640?wx_fmt=png

三、Dubbo 2.7版本规划 640?wx_fmt=png


1、Dubbo Repackage

因为自今年2月份,我们将Dubbo捐献给Apache后,Dubbo已经不再是阿里巴巴的项目,而是社区的项目,GroupID会变更成org.apache.dubbo,并在此基础上,提供一个包含核心API和扩展兼容的兼容包。


640?wx_fmt=png


2、对JDK8 的支持:

从现场的互动看,已经在使用JDK8的开发者占据了很高的比例,甚至已经有部分开发者在使用JDK9和JDK10。通过使用JDK8中的default method函数来实现Dubbo的repackage,其他使用到的JDK8新特性有completablefuture – 实现完整的非阻塞编程模型、optional - 一个可以包含null值的容器对和lambda - 实现函数式编程能力。

 

3、将 Netty3 升级到 Netty4:

Buffer pooling可以大幅减低应用内存的消耗。Netty4提供了新的IO模型,确保IO的写入不再阻塞,通过eventexcutor把业务的逻辑直接放入执行,非常方便。随着 HTTP/2 的流行,多传输协议需要加密显得尤为重要,Netty4中的Native transport和SSLEngine很好的解决了这类需求。


640?wx_fmt=png

 

4、提供Metrics API:

Metrics实现了对服务的某个指标给予一个可量化程度的测量。目前,Metrics的应用已经非常广泛,从底层到应用上层体现出来的都是Metrics数据,开发者和运维人员关注的是Metrics数据,我们的调动、路由以及其他各类操作都会依据Metrics数据,没有Metrics数据也就没法实现智能化。我们最终通过直观的图和数据,来统计服务调用的次数和耗时,并通过micrometer和dropwizard metrics来实现。Dubbo 的metrics API 将遵循Metrics最新的2.0规范,支持Counter、BucketCounter、Gauge、Compass等数据类型。


640?wx_fmt=png


5、对异步的支持:

之前Dubbo对异步支持用起来不是很友好,这次兼容JDK8后,可正式支持completablefuture,并在此基础之上,新增了Dubboasync的注解,通过这个注解可以生成异步化相关的代码。


640?wx_fmt=png


6、元数据改造:

Dubbo的元数据都存储在他的URL里面,所以Dubbo的URL很长,如果大家是使用ZooKeeper来作为Dubbo的注册中心,会发现注册中心有很多很长的key,这个key就是Dubbo产生的。我们现在把元数据进行分离,一部分放到注册中心,一部分放到配置中心,同时对两个中心就行进一步优化。例如通过分流的设置减少注册中心的访问数据量,增加method签名信息,提高服务查询治理和服务测试效率,同时兼容ZooKeeper和阿里巴巴新开源的Nacos。另外,在配置中心引入environment层级设计,解决紊乱的环境变量,同时也兼容Nacos/Apollo/zookeeper。


640?wx_fmt=png


四、Dubbo 的后期规划 - 扩展和互通

单一的开源产品无法支撑整个开源生态,Dubbo将在扩展和互通两个维度构建开源矩阵,形成生态效应。在扩展方面,将通过API、Registry、Cluster、Protocol、Serialize、Config、LB、Router、Transporter、Codec 10个方面进一步补齐Dubbo生态。在互通方面,通过兼容更多的语言,提供PHP、Java、HTTP、Node、Python客户端,让更多的开发者可以使用到Dubbo生态下的所有服务。这也是为让更多的开发者参与到社区共建降低了门槛。后续我们还会有更多的线下meetup,如果大家有关于Dubbo好的建议和实践,欢迎到我们的meetup来进行分享。


今日推文

点击下方图片即可阅读


»  谈谈社区、产品和新Dubbo | 从Dubbo 的社区star 数突破 2 万说起

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值