Dubbo 3.0.0 正式发布,王者归来!_JAVA

Dubbo 简介

如果你还不知道什么是 Dubbo,先来一波扫盲:

Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架

Dubbo 的 6 大特性:

1、面向接口代理的高性能 RPC 调用;

2、服务自动注册与发现;

3、智能负载均衡策略;

4、高度可扩展能力;

5、运行期流量调度;

6、可视化的服务治理与运维;

Dubbo 架构图:

Dubbo 3.0.0 正式发布,王者归来!_JAVA_02

再来回顾下 Dubbo 的发展史:

2011/10/27: 阿里巴巴巴宣布 Dubbo 开源。

2012/10/23: 发布最后一个版本 2.5.3 并停止维护更新。

2017/07/31: 起死回生,官方宣布开启重新更新,并会得到重点维护,参考:Dubbo 宣布重新开始维护。

2017/09/07: 发布起死回生的第一个版本:dubbo-2.5.4。

2018/01/08:

1、Dubbo 团队透露 Dubbo 3.0 宣布正式开工,参考:重大利好,Dubbo 3.0要来了。

2、发布了 dubbo-2.6.0 版本,主要合并了由当当网开源的 dubbox 项目分支。PS:dubbo停止维护期间,当当网基于 dubbo 开源了dubbox。

2018/01/22: Dubbo Spring Boot 版正式发布:dubbo-spring-boot-starter v1.0.0 公测版。

2018/02/09: Dubbo 通过投票正式进入 Apache 基金会孵化器,更新了 Apache 官方域名,也不再仅限于 Java 语言。

参考:

  • Dubbo正式进入 Apache 基金会孵化器
  • Dubbo 域名已改,也不再局限于 Java!

2019/05/20: Apache 软件基金会宣布 Dubbo 正式毕业,成为 Apache 的顶级项目。

Dubbo3 王者归来

前几天 Dubbo 3.0.0 正式发布了:

Dubbo 3.0.0 正式发布,王者归来!_JAVA_03

Maven 依赖已更新:

Dubbo 3.0.0 正式发布,王者归来!_JAVA_04

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>3.0.0</version>
</dependency>

Dubbo3 是在云原生背景下诞生的,使用 Dubbo 构建的微服务遵循云原生思想,能更好的复用底层云原生基础设施、贴合云原生微服务架构。

另外,Dubbo 3.0.0 几乎兼容 2.7.x 所有行为。 因为,Dubbo3 是基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配等几大方向上进行了全面升级。

再来看看更新了啥:

Dubbo 3.0.0 核心功能

1、应用级服务发现机制;

2、下一代 RPC 协议:Triple;

Triple 协议是 Dubbo3 的主力协议,完整兼容 gRPC over HTTP/2,并在协议层面扩展了负载均衡和流量控制相关机制。

3、全新的路由规则;

4、显著提升性能;

5、Kubernetes 服务集成;

Dubbo 3.0.0 扩展

Dubbo 核心不再提供第三方 SDK 扩展,需要通过 dubbo-spi-extensions 项目来支持。

目前支持的扩展有:

1、Zookeeper 作为注册中心、元数据报告、配置中心;

2、Nacos 作为注册中心、元数据报告、配置中心;

3、Kubernetes 作为注册中心;

4、Redis 作为元数据报告;

5、Apollo 作为配置中心;

6、Hessian2 和 jdk 作为默认序列化器;

7、Triple 协议支持 Protobuf;

Dubbo 3.0.0 升级提醒

1、基于 Spring 的相关配置列表可能会发生变更,请留言官方升级文档;

2、为了高度兼容性,Dubbo 3 早期版本会默认开启多重注册,多重订阅;

栈长有话说

Dubbo 也算是老牌的 RPC 框架了,由阿里开源,一度在国内流行成为最主流的 RPC 框架。

遗憾的是,Dubbo 并没有举起大旗,中间停更了几年,后面又重启维护并捐献给了 Apache 软件基金会,但随着近些年来微服务的盛行,以及 Spring Cloud 的异军突起,Dubbo 的光芒早已不在,现在也变得越来越暗淡。。

为什么这么说?

给我第一的直觉是,这次 Dubbo 这么大的版本发布,这都发布好几天了,却几乎没有什么报道,目前官网也没有通报,只是在 Github 进行版本升级了,这着实让我感觉有点悲凉。。

我真是倒吸一口凉气!反观 Spring Cloud,天然结合 Spring Boot,几乎每一个小小的修复版本,都会出现很多解读,从活跃度和应用程度看,Spring Cloud 已经是事实的王者了。。

没错,前些年,随着 Dubbo 的停更,给 Dubbo 是造成了不少负面影响,国内技术人对 Dubbo 也逐渐失去信心,后面即使当当搞出了扩展版 Dubbox 也无济于事,随着 Spring Cloud 大行其道,很多公司都相继从 Dubbo/ Dubbox 迁移到了 Spring Cloud 体系了。

即使如此,也不排除 Dubbo 是一个优秀的 RPC 框架,现在也还是有很多公司在用的,我们从官网可以看到:

Dubbo 3.0.0 正式发布,王者归来!_JAVA_05

说实话,Dubbo 和 Spring Cloud 我都用过,个人而言,相比 Spring Cloud Restful 的调用方式,我更倾向于 Dubbo 的基于接口代理的调用方式,纯 Java 支持,面向接口编程,调用远程服务就像调用本地接口一样直接。

另外,虽然 Spring Cloud 全家桶组件是很全,社区也很活跃,但也有很大的困扰,那就是版本变化太快了,不断的升级,各种组件的废除、重构、更换,Spring Cloud 框架版本升级已变成技术人员的恶梦。。

现在很多人开口闭口都是微服务,有几家公司能真正有规模上微服务的?我想很多公司也都是为赶技术潮流,怕被淘汰,为了应用而应用,盲目应用恐怕是弊大于利。

所以,也没有必要盲目追从最新的技术吧,技术都是为业务服务的,Dubbo 如果用的很好了,就没必要迁移到 Spring Cloud 上面去踩坑!

但是,我们也不能忘记学习,可以不用,但不能不去了解、学习,技术人要有居安思危的意识,毕竟 Spring Cloud 是主流趋势(我也写了一系列 Spring Cloud 教程,可以关注公众号Java技术栈,在菜单中阅读,我都整理好了),但还不是很成熟稳定,如果公司要用的话,最好先拿个边缘项目试水吧……

最后,你们用的什么服务化框架?欢迎投票~

最最后,我们还是期待 Dubbo 再创辉煌吧!

后续栈长也会继续关注并分享 Java 系列教程和资讯,关注公众号Java技术栈第一时间推送。