Apache Dubbo-go
ä¸æ–‡ 🇨🇳
Apache Dubbo-go, a Dubbo implementation written in Golang, is born to bridge the gap between Java and Golang. Please visit our official website for the quick start and documentation.
Architecture
Dubbo-go has been implemented most layers of Dubbo, like protocol layer, registry layer, etc. An extension module is applied to Dubbo-go in order to achieve a more flexible architecture. Developers are allowed to implement a customized layer conformed to the layer interface and use them in Dubbo-go via extension.Set
method without modifying the source code.
Features
The features that are available for Dubbo-go are:
- Role: Consumer, Provider
- Transport: HTTP, TCP
- Codec: JsonRPC V2, Hessian V2, Json for gRPC, Protocol Buffers
- Protocol: Dubbo, Triple, JsonRPC V2, gRPC, RESTful
- Router: Dubbo3 Router
- Registry: ZooKeeper, etcd, Nacos, Consul, K8s
- Dynamic Configure Center & Service Management Configurator: Zookeeper, Apollo, Nacos
- Cluster Strategy: Failover, Failfast, Failsafe/Failback, Available, Broadcast, Forking
- Load Balance: Random, RoundRobin, LeastActive, ConsistentHash
- Filter: Echo, Hystrix, Token, AccessLog, TpsLimiter, ExecuteLimit, Generic, Auth/Sign, Metrics, Tracing, Active, Seata, Sentinel
- Invoke: Generic Invoke
- Monitor: Opentracing API, Prometheus
- Tracing: For JsonRPC, For Dubbo, For gRPC
- Metadata Center: Nacos(Local), ZooKeeper(Local), etcd(Local), Consul(Local), ZooKeeper(Remoting)
- Tool: Dubbo-go-cli
Getting started
Install Dubbo-go v3
go get dubbo.apache.org/dubbo-go/v3
Next steps
Contributing
Please visit CONTRIBUTING for details on submitting patches and the contribution workflow.
Reporting bugs
Please use the bug report template to report bugs, use the enhancement template to provide suggestions for improvement.
If you are using apache/dubbo-go and think that it helps you or want to contribute code for Dubbo-go, please add your company to the user list to let us know your needs.
See more user cases
Dubbo-go ecosystem
- Dubbo Ecosystem Entry - A GitHub group
dubbo
to gather all Dubbo relevant projects not appropriate in apache group yet.
- dubbo-go-pixiu - A dynamic, high-performance API gateway solution for Dubbo and Http services.
- dubbo-go-samples - Samples for Apache Dubbo-go.
- dubbo-getty - A netty like asynchronous network I/O library which supports tcp/udp/websocket network protocol.
- triple - A golang network package that based on http2, used by Dubbo-go 3.0.
- dubbo-go-hessian2 - A golang hessian library used by Apache/dubbo-go.
- gost - A go sdk for Apache Dubbo-go.
License
Apache Dubbo-go software is licenced under the Apache License Version 2.0. See the LICENSE file for details.