|都已经十岁的 Apache Dubbo,还能再乘风破浪吗?( 二 )


从 GitHub 统计数据来看 , Dubbo Star 数取得新的里程碑 , 已超过 3 万 , 相比重启开源时增长了近 5 倍;贡献者由最初的几十个增长到现在的 300 多个 , 而这其中有 60 多人已经被提名为 committer , 不论是贡献者数量还是 committer 比例都得到很大的提升;Dubbo Java 发布的有 65 个 。
上述主要是对 Dubbo Java 项目社区发展的总结 , 下面将介绍 Dubbo Java 产品方面的进展 。
Dubbo Java 迭代 , 目前主要维护 3 个大版本
当前社区维护的 Dubbo Java 大版本主要有 3 个 , 分别是 2.5.x、2.6.x 和 2.7.x 。

  • 2.7.x 是社区的主要开发版本 , 在过去的一年共发布了 8 个版本(2.7.0 - 2.7.7) , 每个版本都有一些值得关注的特性或功能升级 , 涵盖从编程模型、服务治理、性能到协议的多个方面的增强;
  • 2.6.x 版本则定位为 bugfix 版本 , 过去一年共发布了 3 个版本 , 主要以修复问题和安全漏洞为主 , 并没有增加太多新的 feature;
  • 2.5.x 版本从 2019 年初开始已宣布 EOF , 只做安全修复;而到了下半年已经完全停止了维护 。
下面通过一个简要分层模块图 , 回顾过去一段时间 Dubbo 的技术架构演进 , 从编程模型、服务治理、传输协议、性能优化等角度切入:

|都已经十岁的 Apache Dubbo,还能再乘风破浪吗?
本文插图

以上很多功能都已被各大厂商落地 , 用于解决具体的业务问题 。 我们也期待 , 接下来这些厂商带来更多关于 Dubbo 实践经验的深度总结 。
Dubbo-go 发展的第五年 , 正与 Dubbo 齐头并进
除 Dubbo Java 之外 , Dubbo 周边也发展出了很多优秀的子项目(子社区) , 其中包括 Dubbo-spring-boot-project、Dubbo-go 等 , 这里先着重介绍 Dubbo-go 子社区 。
Dubbo-go 项目最早由于雨在 2016 年 5 月构建 , 同年 9 月发布并开源 , 如下时间轴图清晰记录了 Dubbo-go 的前世今生 。

|都已经十岁的 Apache Dubbo,还能再乘风破浪吗?
本文插图

秉承 ''bridge the gap between Java and Go'' 天然使命的 Dubbo-go , 已经进入第五个年头 , 也走出了自己独特的发展路径:
  • 当前的 v1.4.0 版本已对齐 2.6.x 版本 , 即将发布的版本将与 v2.7.x【对标 v2.7.5】对齐 , 而后将会发布对标 Dubbo 3.x 的 v1.6.0版本;
  • 独立维护从底层的 hessian2 协议库 Dubbo-go-hessian2、网络库 getty 到上层对标 Dubbo 的 Dubbo-go 的全套实现;
  • 独立的 TCP + Protobuf 和 gRPC + JSON 通信方案也已开发完成【将包含着在版本 v1.5.0 中】;
  • 已与 Dubbo/gRPC/Spring Boot 实现互联互通;
  • 通过接入 Opentracing 和 Promethus , Dubbo-go 在可观测性等微服务方向的进行了自己独特的探索;
  • 已实现了基于 HTTPS 的可信 RPC 调用;
  • 已经实现了自己独特的把 Kubernetes 作为注册中心的微服务方案;
Dubbo-go 从最开始 Dubbo 的 Go 语言实现 , 已发展成为目前 Dubbo 多语言版本中功能最强大者 , 它的发展离不开背后强大的 Dubbo-go 社区 。 除了上述 Dubbo-go 的自身特性外 , 通过跨社区合作 , 取得了如下成绩: