Apache Dubbo-go English
Apache Dubbo Go 语言实现
Apache License, Version 2.0
v1.1.0 - 2019年9月7日 捐献给Apache之后的第一次release
v1.0.0 - 2019年5月29日 兼容dubbo v2.6.5 版本
基于dubbo的extension模块和分层的代码设计(包括 protocol layer, registry layer, cluster layer, config 等等)。我们的目标是:你可以对这些分层接口进行新的实现,并通过调用 extension 模块的“ extension.SetXXX ”方法来覆盖 dubbo-go [同 go-for-apache-dubbo ]的默认实现,以完成自己的特殊需求而无需修改源代码。同时,欢迎你为社区贡献有用的拓展实现。
关于详细设计请阅读 code layered design
实现列表:
-
角色端
- Consumer
- Provider
-
传输协议
- HTTP
- TCP
-
序列化协议
- JsonRPC V2
- Hessian V2
-
协议
-
路由器
-
注册中心
-
动态配置中心与服务治理配置器
-
集群策略
- Failover
- Failfast
- Failsafe/Failback
- Available
- Broadcast
- Forking
-
负载均衡策略
- Random
- RoundRobin
- LeastActive
- ConsistentHash
-
过滤器
-
调用
-
监控
- Opentracing API
- Prometheus
-
Tracing
-
其他功能支持:
- 启动时检查
- 服务直连
- 多服务协议
- 多注册中心
- 多服务版本
- 服务分组
开发中列表:
- 元数据中心 (dubbo v2.7.x)
- 服务发现 (dubbo v2.7.x)
你可以通过访问 roadmap 知道更多关于 dubbo-go 的信息。
https://dubbogo.github.io/dubbo-go-website (完善中)
dubbo-samples/golang这个项目的事例展示了如何使用 dubbo-go 。请仔细阅读 dubbo-samples/golang/README.md 学习如何处理配置并编译程序。
Mac/Linux
sh ./before_ut.sh
Windows
before_ut.bat
go test ./...
# coverage
go test ./... -coverprofile=coverage.txt -covermode=atomic
如果您愿意给 Apache/dubbo-go 贡献代码或者文档,我们都热烈欢迎。具体请参考 contribution intro。
性能测试项目是 dubbo-go-benchmark。
关于 dubbo-go 性能测试报告,请阅读 dubbo benchmarking report & jsonrpc benchmarking report。
若你正在使用 apache/dubbo-go 且认为其有用或者向对其做改进,请忝列贵司信息于 用户列表,以便我们知晓之。