Dubbo成为Apache顶级项目新闻
![3015daef264c36aea479f53f18d0cad6.png](https://i-blog.csdnimg.cn/blog_migrate/906f52c65940f1b3ea8ed0d4c4536df0.jpeg)
Apache首页软件列表中的Dubbo
![c95426474115924b6edb22b41b08859d.png](https://i-blog.csdnimg.cn/blog_migrate/08ba3d56db358f1f717350f9f43d2e9d.jpeg)
Dubbo 发展史一览
2011 年 10 月 27 日,阿里巴巴开源了自己服务化治理方案的核心框架 Dubbo,服务治理的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。自开源后,许多非阿里系公司选择使用 Dubbo,其中既有当当网、网易考拉等互联网公司,也有中国人寿、青岛海尔等传统企业。
2012 年 10 月 23 日 Dubbo 2.5.3 发布后,在 Dubbo 开源将满一周年之际,阿里基本停止了对 Dubbo 的主要升级。
2013 年,2014 年,更新了 2 次 Dubbo 2.4 的维护版本,然后停止了所有维护工作。至此,Dubbo 对 Spring 的支持也停留在了 Spring 2.5.6 版本上。
阿里停止维护和升级 Dubbo 期间,当当网开始维护自己的 Dubbo 分支版本 Dubbox,新特性主要包括:支持新版本的 Spring,支持 Rest 协议等,并对外开源了 Dubbox。同时,网易考拉也维护了自己的独立分支 Dubbok,可惜并未对外开源。
2017 年 9 月 7 日,Dubbo 悄悄在 GitHub 发布了 2.5.4 版本。随后,又迅速发布了 2.5.5、2.5.6、2.5.7 等版本。在 10 月举行的云栖大会上,阿里宣布 Dubbo 被列入集团重点维护开源项目,这也就意味着 Dubbo 起死回生,开始重新进入快车道。
2018 年 1 月 8 日,Dubbo 2.6.0 版本发布,新版本将之前当当网开源的 Dubbox 进行了合并,实现了 Dubbo 版本的统一整合。
2018 年 2 月 9 日,Apache 基金会的邮件列表上发起了讨论是否接纳阿里的 Dubbo 项目进入 Apache 孵化器的投票。经过一周的投票,邮件列表显示,Dubbo 获得了 14 张赞成票,在无弃权和反对票的情况下,正式通过投票,顺利成为 Apache 基金会孵化项目。
自此,Dubbo 开始了两个长期维护的版本,Dubbo 2.6.x (包名:com.alibaba)稳定维护版本和 Dubbo 2.7.x (包名:org.apache)apache 孵化版本。
2018 ~ 2019 年,在此期间,Dubbo 发布了 4、5 个版本,并发布了 nodejs,python,go 等多语言的客户端。在此期间,Dubbo 社区相继在北京、上海、深圳、成都、杭州、南京等地举办了开发者沙龙。
2019 年 1 月,2.7.0 release 版本发布,这个即将毕业的 apache 版本支持了丰富的新特性,全新的 Dubbo Ops 控制台。时至 5 月,Dubbo 来到了 2.7.2 版本,期间积极引入了新的特性,支持 consul,nacos,etcd 等注册中心。
2019 年 5 月 21 号,经过了漫长的孵化期,Dubbo 终于毕业,阿里巴巴又一开源力作成为Apache顶级项目。
dubbo or springcloud
springcloud出来之前,dubbo几乎是国内SOA的标准,笔者印象中,从来没有一个国产开源软件得到这么多公司的青睐和选择。使用dubbo的公司包括但不限于:当当、网易考拉、VIVO、滴滴、去哪儿、美味不用等、TCL等(参考:https://github.com/apache/incubator-dubbo/issues/1012)。
dubbo和springcloud,事实上,两者没有可比性。dubbo是RPC框架(虽然dubbo也在往生态方向走,但几乎还没有雏形),springcloud是微服务解决方案。笔者认为,dubbo只能类比springcloud中非常著名的解决方案Spring Cloud Netflix的部分功能特性。
dubbo or springcloud?dubbo完全可以和springcloud共存,架构图如下所示(图片来源自技术交流群)。所以说用springcloud并不代表项目多么先进,用dubbo也并不就表示项目是落后的。微服务是如此庞大且复杂的工程,复杂到即使springcloud也不能cover住每一个环节,而且,springcloud已有的一些方案做的并不理想,甚至都达不到生产标准。我们要做的就是针对每一个技术环节,结合自己的业务特点,千万不要仅局限在springcloud体系,从而选择出最有利于自己项目的开源产品:
![e19fa0cbf437cd57171ab9f320837264.png](https://i-blog.csdnimg.cn/blog_migrate/9a29f4a09d9616e86396d5fc9b2ad2ed.jpeg)