dubbo版本兼容(聚焦稳定性,Dubbo 发版规划公布)
Dubbo 简介
Apache Dubbo 是一款 RPC 服务开发框架 ,用于解决微服务架构下的服务治理与通信问题 ,官方提供了 Java 、Golang 等多语言 SDK 实现 。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性 ,可以实现诸如服务发现 、负载均衡 、流量调度等服务治理诉求 。Dubbo 被设计为高度可扩展 ,用户可以方便的实现流量拦截 、选址的各种定制逻辑 。
我应该如何选择版本?
对于这个问题 ,一直以来 Dubbo 都没有很好地去回答 。究其原因保证所有版本的稳定性是一件非常有挑战的事情 。比如在 Dubbo 2.7 的一些版本中 ,出现了一些前后不兼容的问题 ,给一些用户升级带来了困扰 。为此 ,很多用户从保障稳定性的视角出发 ,选择了更保守的策略 ,即生产环境采用被采用最多的版本 ,此后就不再更新,避免升级过程中出现意外 。
但是这种方式无疑是有问题的 ,一方面这将导致永远无法用上社区新的功能 ,得到技术演进的红利;另一方面,对于安全漏洞和带来不稳定因素的 bug 等已知问题如果不升级永远会存在 ,久而久之将给应用带来巨大的风险 ,很有可能导致严重的安全生产事故 。
因此,为了更好地回答这个问题 ,Dubbo 制定了未来的版本迭代规划 ,明确版本的稳定性维护机制 ,提升开发者使用 Dubbo 的信心 。
现状
在此前 ,Dubbo 总共维护了 2.6.x 、2.7.x 以及 3.x 三个大版本 ,其中 2.7.x 为捐献进入 Apache 基金会之后的版本。
2.6.x 在去年已经宣布生命周期结束(EOL)了 ,而 2.7.x 累计维护了四年的时间了 。这四年的时间里 ,2.7.x 版本经历了多次大的修改 ,如 2.7.3 版本中对 Nacos 的注册方式进行了修改 、2.7.6 版本中添加了应用级服务发现 、2.7.9 版本中对应用级服务发现进行大的重构等 。
3.
这些修改都对 2.7.x 版本的稳定性带来了巨大的风险隐患 ,导致 2.7.x 中很多版本或多或少存在不同的问题,用户无法选择一个最稳定的版本进行使用。因此 ,我们希望在 3.x 版本中将这种不稳定的情况通过发版机制给收敛掉 ,提高 Dubbo 版本的稳定性 。
未来总体规划
在接下来,Dubbo 将以每 6 个月为一个周期 ,对每个版本包括了新功能合入 、稳定性维护以及安全漏洞修复三个大方向的内容 。
新功能合入是指将 Dubbo 开发过程中所有新的特性 、性能优化、破坏性修改都会被合入的行为。由于新功能是需要一段时间迭代稳定的 ,所以新功能的合入会给对应版本带来不稳定因素,因此只能在每个版本最开始的时候进行 。
稳定性维护是指修复已有功能的非预期行为 ,进一步提升版本的稳定性 。特别的 ,对于一些大的问题修复 ,如功能需要整体重构的 ,或者回带来破坏性影响的提交将被视为新功能提交 ,执行新功能合入的流程 。避免因为修复一个问题而来带更多问题的严重后果 。
安全维护是指修复使用中的安全风险问题 ,这一块主要是解决来自白帽子提交的漏洞问题 。
新功能合入在每个版本中会持续 6 个月 ,稳定性维护在每个版本中会持续 12 个月 ,安全维护在每个版本中会持续 18 个月 。
因此 ,从整体迭代规划来看,每 6 个月 Dubbo 会开始一个新的版本迭代 ,与之同时的 ,也会有一个版本宣布生命周期结束(EOL) 。
逐版本维护规划
上图为具体到每个版本在每个时间点的维护状态图 。
对于 Dubbo 2.7 以及 3.0 版本,目前已经进入了安全维护阶段 ,将在 2023 年 3 月宣布版本维护周期结束 。
对于 Dubbo 3.1 版本 ,目前已经是稳定性维护阶段,如前一小节所述 ,目前只会继续合入和稳定性修改的修改。处于稳定性维护阶段的版本也是社区推荐生产使用的最新版本 。稳定性维护工作将持续到 2023 年 3 月 ,在此之后会有持续 6 个月的安全维护阶段 ,最终在 2023 年 9 月结束其版本的生命周期 。
对于 Dubbo 3.2 版本 ,目前仍处在新功能合入的阶段 ,发布的是 beta 版本。此阶段适合一些尝鲜使用 ,版本稳定性相较于已经进入仅稳定性维护阶段的版本稍欠 。在 2023 年 3 月 ,Dubbo 3.2 将结束新功能合入周期 ,进行充分的稳定性验证 ,并正式发布生产可用的 GA 版本 。此后在 2023 年 9 月之前会进行稳定性的维护,在 2024 年 3 月结束版本的生命周期。
对于 Dubbo 3.3 版本 ,将在 2023 年 3 月紧随着 3.2 版本结束新功能合入阶段后正式开始开发 。因此 ,Dubbo 3.3 版本的第一个 beta release 也将会在 2023 年 3 月发布 。同样的,经过 6 个月的新功能合入阶段之后 ,Dubbo 3.3 版本将会在 2023 年 9 月正式发布生产可用 GA 版本 ,同时进入稳定性维护阶段 。之后在 2024 年 3 月进入安全维护阶段,在 2024 年 9 月结束版本的生命周期 。
总结
对于绝大多数的生产用户 ,我们建议使用当前处于仅稳定性维护阶段的版本的最新小版本 。如在 2022 年 9 月至 2023 年 3 月这段时间 ,Dubbo 3.1 是处于仅稳定性维护阶段的 ,因此首选 Dubbo 3.1 版本 。而对于如 3.1.0 、3.1.1 、3.1.2 等的 Dubbo 3.1.x 的多个小版本 ,我们建议直接使用最新的小版本 。由于各个小版本之间仅包含稳定性修复 ,所以越往后的版本是越稳定的 。
对于愿意尝鲜、体验新功能的用户 ,可以直接基于最新的开发版本进行测试 。即使是开发版本 ,Dubbo 也有一整套的质量保障机制 ,如果使用过程中遇到问题 ,欢迎向社区提交反馈。
目前,阿里巴巴集团已经基于 Dubbo 3.0 的稳定版本完美支撑了整个核心电商今年双十一的所有调用 ,现在也正在升级到 Dubbo 3.1 这个最新的稳定版本上来 。我们欢迎更多的用户一起升级到 Dubbo 3.1 版本上 ,在升级过程中可以参考官网给出的升级指南,遇到任何问题也可以通过 issue 、微信群 、钉钉群及时反馈社区 ,我们将尽全力协助 。
更多
在版本规划的方向上 ,除了本次发布的迭代线路图,Dubbo 还将通过一系列的机制保障用户的使用体验是连续的、稳定的。在大版本升级方面 ,Dubbo 将建设完善的版本升级指南 ,如 Dubbo 3.1 版本升级到 Dubbo 3.2 版本中的重大修改点 ,让用户在升级的时候能够清晰的了解其中的风险点 ,更好的规划升级节奏 。
此外 ,对于目前人在大范围使用的 Dubbo 2.7 版本 ,在近期 Dubbo 社区也将推出针对 Dubbo 2.7 版本的升级的指南与工具 ,通过工程化的方式让所有的 Dubbo 2.7 用户都可以提前查出所有的版本差异点 ,平滑升级到 Dubbo 3 上来 。
搜索关注官方微信公众号:Apache Dubbo ,了解更多业界最新动态,掌握大厂面试必备 Dubbo 技能
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!