作者:Dubbo 社区
Apache Dubbo 3.1.0 作为 Dubbo 规划中的一个重要里程碑版本,标记着 Dubbo 在数据面上全面拥抱 Service Mesh 的工作模式,原生支持接入到 Service Mesh 的体系中。在 8 月 22 日,Dubbo 3.1.0 版本通过社区投票,正式对外发布。
Dubbo 3.1.0 主要包括了以下这些新功能:
- Service Mesh 数据面能力支持
- 错误代码故障排查文档指南
- Fastjson2 支持
- 单端口多协议支持
- Dubbo Reactive stream 支持
Service Mesh
Dubbo Mesh 下数据面的部署架构
Dubbo 3.1.0 版本中通过 Thin SDK 和 Proxyless 两种模式对接 Service Mesh 架构,原生支持基于 Proxy 的 Sidecar 模式;也支持直接对接控制面,通过 xDS 协议下发管控规则实现 Proxyless 模式。
在官方文档的《入门文档 -> 示例实践 -> Mesh 部署方案》部分可以获取快速实践 Mesh 部署的文档。
Dubbo Mesh 部署架构
下一步,Dubbo 将从控制面与数据面两个方面入手,通过 Dubbo Mesh 的方式提供一整套服务控制平台。在这套架构中,数据面更轻量、专注,控制面更内聚、强大,只需要部署一套控制面即可使用生产级的服务治理能力。更多关于 Dubbo Mesh 的描述可以从 《Dubbo Mesh - 从服务框架到统一服务控制平台》 一文中以及 Apache Dubbo 公众号获取。
错误代码故障排查文档指南
Dubbo 内部依赖的 Logger 抽象层提供了日志输出能力,但是大部分的异常日志都没有附带排查说明,导致用户看到异常后无法进行处理。
为了解决这个问题,自 Dubbo 3.1.0 版本开始,引入了错误码机制。其将官方文档中的错误码 FAQ 与日志框架连接起来。在日志抽象输出异常的同时附带输出对应的官网文档链接,引导用户进行自主排查。
在未来,绝大部分的报错都将和 Dubbo 官方文档有直接链接,开发人员和运维人员可以通过这些文档及时高效的了解问题的原因,更好地定位解决问题,提升线上稳定性。
Fastjson 2
FASTJSON v2 是 FASTJSON 项目的重要升级,目标是为下一个十年提供一个高性能的 JSON 库。通过同一套 API,支持 JSON / JSONB 两种协议、Graal Native-Image、JDK 17 等。
Dubbo 当前的默认序列化协议为 Hessian 协议,存在长时间无人维护的问题,无法为未来的安全性以及兼容性做保障。而 Dubbo 接入 FASTJSON v2 可以得到比 Hessian 更高的性能体验、原生 JDK 17 等支持。在 Dubbo 3.1.0 版本中,通过将 serialization 指定为 fastjson2 可以手动启用此特性,在未来我们将提供从 Hessian 平滑迁移到 FASTJSON v2 的方案。
升级兼容性
注意事项:
如果您使用的是 Nacos 注册中心,请检查注册中心是否已经配置了 group 属性,如果已配置需要检查服务端和消费端的 group 是否都一致,如果不一致请修改为一致。官方文档的《SDK 手册 -> Java -> 升级和兼容性 -> 3.0 升级至 3.1 操作指南》中有相关具体说明。
Dubbo 3.1.0 和 3.0.0 从整体设计上是完全兼容的,Dubbo 3.1.0 包含了所有 3.0 分支的能力,除了上述的注意事项外,Dubbo 支持从 3.0.0 平滑升级到 3.1.0 版本。
更多关于 Apache Dubbo 的动态可以关注 Apache Dubbo 社区官方公众号(ApacheDubbo),及时获取最新的消息。
点击此处,直达 Dubbo 官网!