Repository navigation
Release v3.3.2
发布总目录 · 版本与升级 · GitHub Release
- 类型:框架正式版
- 发布日期:2026-08-01T08:49:40Z
- Release 标题:v3.3.2
以下为 GitHub 发布说明原文。它与主仓库 CHANGELOG 分别保存;如有差异,请核对目标 tag 的源码。
Apache Dubbo-go 3.3.2 is a production-readiness release focused on API consolidation, Triple protocol capabilities, application-level metadata, service governance, concurrency safety, and release tooling. It completes the removal of the legacy config package, moves the project baseline to Go 1.25, expands generic invocation and HTTP-facing Triple features, refreshes generated-project workflows, and fixes multiple races, stale-snapshot issues, and resource leaks.
- Go 1.25 is now required. The module and project toolchain have moved from Go 1.24 to Go 1.25. #3469
-
The legacy
dubbo.apache.org/dubbo-go/v3/configpackage has been removed. Applications that imported it directly must migrate to the instance/options APIs and configuration types underglobal. The root compatibility bridge has also been removed. #3372 #3448 #3449 -
Direct users of the low-level
triple_protocol.ClientAPI must pass the RPC method explicitly. The higher-levelclient.Clientand generated-client APIs remain unchanged. #3086 -
The Hystrix filter has moved to
apache/dubbo-go-extensions. Existing users should import the extension implementation and keep using the registered filter name. #3253 - The legacy gRPC and Dubbo3 protocol implementations and the IDL-mode switch are now deprecated in preparation for a future removal. #3469
-
Expand generic invocation support. Triple generic calls can now interoperate without generated stubs, with new
protobuf-jsonandbeangeneralizers, typed invocation, class metadata, and exception-class handling. #3154 #3170 #3171 #3174 #3175 #3183 - Enhance Triple for HTTP and cloud-native workloads. This release adds CORS, REST OpenAPI support, stateful HTTP/3 negotiation with probe and cooldown, mounting existing HTTP handlers on a Triple listener, and unary response header/trailer capture through call options. #3090 #3280 #3281 #3301 #3443 #3446
- Add Kubernetes health probes. Applications can expose liveness, readiness, and startup checks. #3213
- Rework graceful shutdown. The shutdown lifecycle now coordinates consumers, providers, registries, and acknowledgements through a unified implementation and configurable shutdown state. #3235 #3293 #3386 #3388
- Strengthen application-level metadata. The release completes the local metadata lifecycle, makes metadata state concurrency-safe, clarifies metadata-report selection, canonicalizes revisions, adds renewal and garbage collection, and hardens remote loading with report-to-RPC fallback and conflict-aware service-to-application mapping updates. #3357 #3362 #3367 #3369 #3370 #3371 #3373 #3395
- Improve routing and governance. Static router configuration injection, script-router registration, router-chain snapshot caching, and additional routing context are now supported. #3215 #3224 #3252 #3305
- Improve observability. A context-aware logger interface integrates trace fields with Logrus and Zap, logger initialization now synchronizes the public Dubbo-go facade, and Triple metrics distinguish additional RPC failure conditions. #3189 #3195 #3345
- Expose snapshots of
CustomConfigandInstanceOptionsfor applications that need to inspect resolved instance configuration. #3481
- Fix races across URL cloning, shared extension registries, metadata state, protocol lifecycle, Nacos and directory state, consistent hashing, round-robin load balancing, sticky invokers, and service-discovery listeners. #3160 #3264 #3265 #3269 #3270 #3271 #3307 #3317 #3367 #3435 #3439 #3442
- Respect cancellation and timeouts while dialing Triple HTTP/2 connections and validate Getty server TLS configuration before enabling SSL. #3156 #3165
- Preserve Go/Java Triple interoperability with case-insensitive method routing that does not duplicate or pollute service metadata. #3277
- Fix routing correctness for context attachments, provider tags, application names and URL attributes, affinity-router initialization, and invalid script-router configuration updates. #3164 #3185 #3208 #3216 #3256 #3417
- Prevent panics during concurrent invoker destruction and avoid a server startup deadlock caused by holding the server lock while blocking in
Serve. #3184 #3238 - Reconcile initial Nacos and Polaris subscription state so stale providers are removed when current registry snapshots arrive. #3479 #3482
- Fix retained URL state and clean up pending remoting responses on request errors and heartbeat timeouts to prevent memory growth. #3282 #3440
- Preserve multiple Nacos providers and routable environment metadata, keep application tags in
MetadataInfo, and retain Apollo context paths when building configuration-center addresses. #3309 #3331 #3400 - Preserve OpenTelemetry
traceparentvalues and fix the metadata supplier type mismatch that broke trace propagation. #3285 #3433 - Make Triple stream response closure non-blocking and harden protocol initialization, metadata headers, trailer attachments, and Getty write error handling. #3307 #3418 #3428 #3434 #3466
- Fix generic invocation of variadic methods and add warnings for unsupported or ambiguous variadic RPC definitions. #3284 #3294
- Prevent JSON-RPC nil-pointer panics for unsupported content types and missing exporters. #3298 #3312
- Make consistent hashing use the configured
hash.argumentsindexes and accept non-string request arguments without panicking. #3430 #3432 - Add bounded exponential-backoff retries for Nacos subscriptions and failback cluster retries. #3178 #3180
- Refactor the low-level Triple client from one client per method to one client per service, reducing managed client instances from O(methods) to O(1) per service. #3086
- Reduce allocations in
common.URLcloning, string rendering, equality checks, map conversion, and key construction. #3399 #3403 #3404 #3412 #3488 - Reduce temporary allocations in load-balancing and service-discovery hot paths, and add fast paths for Triple content-type canonicalization. #3410 #3414 #3415 #3416
- Remove the Viper dependency and continue decoupling runtime components from legacy configuration internals. #3323 #3449
- Add a Linux/RISC-V build check and update security-sensitive and networking dependencies. #3244 #3368 #3467 #3470
- Refresh the companion tool versions for the release:
protoc-gen-go-tripleandprotoc-gen-triple-openapi3.3.2,dubbogo-cli1.0.1, andimports-formatter1.0.11. The Triple generator now emits the modernNewXxxandRegisterXxxHandlerAPI style by default, records generator andprotocversions in generated files, and retains legacy output behinduseOldVersion=true. #3585 - Rework CLI scaffolds to generate protobuf and Triple sources through
make proto-geninstead of embedding generated files. New projects use Go 1.25 with the stable Dubbo-go v3.3.1 dependency, treat wrapped EOF as normal stream completion, and are compiled end to end in Linux CI. #3585 #3587
- Document Triple header and trailer APIs and the migration path for reading generic-call response attachments; refresh filter documentation and repair outdated README links. #3158 #3365 #3380 #3381 #3447
- Refresh the English and Chinese documentation for maintained tools, update the current configuration schema and example, and remove the obsolete variadic-RPC contract checker. #3585
- Add default protection rules for the default and release branches, upgrade the Codecov action, and add the Linux/RISC-V build workflow. #3325 #3375 #3470
Special thanks to all contributors to Apache Dubbo-go 3.3.2:
@04cb @Aetherance @Aias00 @Alanxtl @AlexStocks @AsperforMias @CAICAIIs @chaojixinren @eye-gu @fallintoplace @HarshMehta112 @HGD-coder @jieguo-coder @lesbass @mochengqian @MrSibe @nagisa-kunhah @nanjiek @NeverENG @Oxidaner @phpcyy @Qiao-yq @Saramanda9988 @Similarityoung @Snow-kal @Tsukikage7 @Vanillaxi @whimc1 @wyf027 @XnLemon @xxs588 @yangpixi @ywxzm03 @zbchi
Full Changelog: https://github.com/apache/dubbo-go/compare/v3.3.1...v3.3.2