博客 / 詳情

返回

What's new in dubbo-go v3.3.0

我們 dubbogo 社區很高興地宣佈發佈最新版本 v3.3.0!這一版本帶來了多個 Bug 修復、新特性以及代碼優化,顯著提升了 dubbogo 的穩定性與功能性。

🚀 版本亮點

在本次更新中,我們對多個核心組件進行了改進,以解決服務發現、註冊中心相關的問題,並優化內存管理,減少內存泄漏。此外,我們增強了底層通信庫的錯誤處理能力,並提升了系統的整體穩定性,為 Go 開發者提供更強大、更可靠的微服務開發體驗。

本次更新的主要改進包括:修復了多個服務發現和註冊中心相關的問題,解決了內存泄漏,並增強了底層通信庫的錯誤處理能力和穩定性。此外,還新增了腳本路由功能、增強了 Java 兼容性、支持 Triple 協議 Keepalive 以及引入基於 Protobuf 的 MetadataService。


更新亮點


✨ 主要新特性

  • 腳本化路由功能:支持基於腳本的動態路由配置,提高服務治理的靈活性。
  • 增強 Java 互操作性:進一步優化 Dubbo-Go 與 Java 生態的兼容性。
  • Triple 協議 Keepalive:為 Triple 協議引入 Keepalive 配置,增強長連接的穩定性。
  • Protobuf 元數據服務支持:支持基於 Protobuf 的 MetadataService,更好地支持微服務治理。
  • Nacos 註冊中心增強:支持多類別訂閲,提升 Nacos 作為註冊中心的適用性。

🛠 穩定性提升

  • 修復 OTEL-GRPC 導出器初始化問題,確保 OpenTelemetry 監控功能正常運行。
  • 解決 Nacos/Zookeeper 服務發現和訂閲相關問題,提升註冊中心的穩定性。
  • 修復內存泄漏問題,優化 BaseInvoker 和 slice 截取的內存管理。
  • 改進 Triple 協議的錯誤處理,增強通信穩定性,避免未實現方法導致的錯誤。

📈 代碼優化增強

  • 重構超時單位:Dubbo 協議超時時間單位統一調整為毫秒。
  • 更新條件規則排序邏輯,確保路由規則執行順序的穩定性。
  • 業務錯誤與 RPC 傳輸錯誤分離,便於更精準地識別錯誤來源。

詳細更新內容


🐞 Bug 修復

  • 修復 OTEL-GRPC 導出器的初始化問題。 #2666 #2679
  • 解決測試用例不一致的問題。 #2660
  • 修復 makezero bug。 #2682
  • 解決 nacos 服務發現問題。 #2691 #2694
  • 修正 protoc-gen-go-triple 路徑錯誤。 #2690
  • 修復因 nil backupCodec 導致的分段錯誤。 #2698
  • 解決 zookeeper 映射鍵問題。 #2711
  • 解決 nacos 註冊中心 * 訂閲問題。 #2713
  • 解決 nacos 服務發現無法獲取所有服務名稱的問題。 #2715
  • 解決潛在的死鎖問題。#2716
  • 修復服務斷連和配置失效的問題。 #2717
  • 處理 triple handler 錯誤,採用 codeUnimplemented 機制。 #2719
  • 修復路由規則解析日誌錯誤。 #2720
  • 通過設置 baseinvoker 的 URL 為 nil 解決內存泄漏問題。 #2726
  • 修復 CallClientStream 結果處理錯誤。 #2732
  • 修正切片初始化長度問題。 #2734
  • 增強日誌記錄,添加文件名、函數名和行號。#2744
  • 解決 HTTP 代理請求自動駝峯轉換問題。 #2746
  • 修復 golangci-lint 報告的問題。 #2754
  • 修正 dubbo_registry_directory 指標類型錯誤。#2766
  • 修復 findMappedServices 可能引發的 panic。#2768
  • 確保 CacheListener 中的 ListenerSet 線程安全。 #2769
  • 改進訂閲行為,等待註冊完成或超時。#2775
  • 解決 rc.id 始終為空的問題。 #2778
  • 修復相同地址無法區分不同註冊中心的問題。 #2784
  • 移除不必要的 setdeadline 調用。 #2785
  • 修復多個錯誤返回問題。 #2791
  • 解決額外的內存泄漏問題。 #2792
  • 修正部分不準確的註釋。 #2793
  • 修復 ReadMessage() 競態問題。 getty#123
  • 修復因切片截取導致的內存泄漏問題。 #hessian2/374
  • 解決了 dubbogo-cli 中 ZooKeeper 的 URL 解析 panic 並改進了錯誤處理。 2795

🚀 新特性

  • 添加了基於腳本的路由功能。 #2669
  • 引入了對多目的地條件路由的支持。 #2685
  • 實現了新的條件規則。 #2686
  • 增強了 Java 互操作性。 #2687
  • 添加了基於 Protobuf 的 MetadataService 支持。 #2723
  • 引入了 triple 協議的 keepalive 配置。 #2757
  • 增強了 nacos 註冊中心的多類別訂閲支持。 #2783
  • 添加了 triple 協議 keepalive 配置。 #triple87
  • 添加了 triple 協議連接池。 #triple91

📌 代碼優化

  • 為元數據添加了單元測試。 #2665
  • 改進了代碼註釋。 #2668
  • 將方法 WithClientCheck 重命名為 WithClientNoCheck。 #2680
  • 優化了 Nacos 端點處理。 #2692
  • 更新了 UseAsMetaReportUseAsConfigCenter 以使用字符串值來防止覆蓋。 #2693
  • 更新了條件規則排序邏輯。 #2688
  • 區分了業務錯誤和 RPC 網絡錯誤。 #2712
  • 標準化了 Dubbo 協議中的超時單位(毫秒)。 #2737
  • 將內部組件移動到 dubbo-go-samples 倉庫。 2794
  • 限制了重新連接的嘗試次數和持續時間。 getty#117

❤️ 特別感謝

感謝所有為本次發佈做出貢獻的社區成員!!您的貢獻使得 Dubbo-Go 變得更加高效和強大: 

@1kasa
@AlbumenJ
@AlexStocks
@alingse
@ALLen442
@baerwang
@chickenlj
@cuishuang
@FinalT
@FoghostCn
@gexincoding
@knowmost
@linfeip
@marsevilspirit
@Nexusrex18
@No-SilverBullet
@SHA-4096
@ShawnJeffersonWang
@snowLeopard331
@solisamicus
@wcy666103
@YarBor
@yumosx

📥 升級

強烈建議所有 dubbogo 用户升級到最新版本,以享受更穩定、高效的服務體驗。

鏈接:

  • GitHub 倉庫:https://github.com/apache/dubbo-go
  • 📌 訪問 GitHub 獲取最新版本:Apache Dubbo-Go Releases v3.3.0
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.