Dubbo 3.1.0 正式釋出,資料面原生接入 Service Mesh

語言: CN / TW / HK

作者:Dubbo 社群

Apache Dubbo 3.1.0 作為 Dubbo 規劃中的一個重要里程碑版本,標記著 Dubbo 在資料面上全面擁抱 Service Mesh 的工作模式,原生支援接入到 Service Mesh 的體系中。在 8 月 22 日,Dubbo 3.1.0 版本通過社群投票,正式對外發布。

Dubbo 3.1.0 主要包括了以下這些新功能:

  1. Service Mesh 資料面能力支援

  2. 錯誤程式碼故障排查文件指南

  3. Fastjson2 支援

  4. 單埠多協議支援

  5. Dubbo Reactive stream 支援

Service Mesh

1.png

Dubbo Mesh 下資料面的部署架構

Dubbo  3.1.0 版本中通過 Thin SDK 和 Proxyless 兩種模式對接 Service Mesh 架構,原生支援基於 Proxy 的 Sidecar 模式;也支援直接對接控制面,通過 xDS 協議下發管控規則實現 Proxyless 模式。

在官方文件的《入門文件 -> 示例實踐 -> Mesh 部署方案》部分可以獲取快速實踐 Mesh 部署的文件。

2.png

Dubbo Mesh 部署架構

下一步,Dubbo 將從控制面與資料面兩個方面入手,通過 Dubbo Mesh 的方式提供一整套服務控制平臺。在這套架構中,資料面更輕量、專注,控制面更內聚、強大,只需要部署一套控制面即可使用生產級的服務治理能力。更多關於 Dubbo Mesh 的描述可以從 《Dubbo Mesh - 從服務框架到統一服務控制平臺》 一文中以及 Apache Dubbo 公眾號獲取。

錯誤程式碼故障排查文件指南

3.png

Dubbo 內部依賴的 Logger 抽象層提供了日誌輸出能力,但是大部分的異常日誌都沒有附帶排查說明,導致使用者看到異常後無法進行處理。

為了解決這個問題,自 Dubbo 3.1.0 版本開始,引入了錯誤碼機制。其將官方文件中的錯誤碼 FAQ 與日誌框架連線起來。在日誌抽象輸出異常的同時附帶輸出對應的官網文件連結,引導使用者進行自主排查。

在未來,絕大部分的報錯都將和 Dubbo 官方文件有直接連結,開發人員和運維人員可以通過這些文件及時高效的瞭解問題的原因,更好地定位解決問題,提升線上穩定性。

Fastjson 2

4.png

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 官網!