Dubbo-go is a Go implementation of the Apache Dubbo RPC and microservice framework that provides high-performance service communication with compatibility across other Dubbo language implementations.
The framework addresses the need for efficient inter-service communication in microservice architectures by leveraging Go's concurrency features. It supports multiple protocols including Dubbo, JSONRPC, Triple (gRPC-compatible), gRPC, HTTP, HTTP2, and HTTP/3 in experimental form, allowing seamless integration in heterogeneous environments. The tool provides service governance capabilities including service discovery, load balancing, and traffic management, with features such as script routing, multi-destination conditional routing, and connection pooling for the Triple protocol.
Dubbo-go suits teams building microservice systems in Go who need interoperability with existing Dubbo deployments or who require flexible protocol support across different service communication patterns. The framework is appropriate for applications requiring robust service governance and observability. The project targets production use, with recent releases emphasizing API consolidation, concurrency safety, and resource leak fixes. Developers should be aware that the legacy config package has been removed in favor of a modern global package, requiring migration of existing configurations.
The project maintains active development with recent releases addressing production-readiness concerns. Multiple race conditions in service discovery under high-concurrency scenarios have been fixed in recent versions. Configuration hot-reloading has been optimized with content-based caching to prevent redundant notifications. The tool continues to expand protocol capabilities, with recent additions including experimental HTTP/3 support and Triple protocol OpenAPI generation. Integration options have been broadened through additions like Apollo support alongside existing Nacos integration.