Apache Dubbo-go English
Apache Dubbo Go 语言实现
Apache License, Version 2.0
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
- 注册中心: ZooKeeper/etcd v3/nacos/consul
- 配置中心: Zookeeper
- 集群策略: Failover/Failfast/Failsafe/Failback/Available/Broadcast/Forking
- 负载均衡策略: Random/RoundRobin/LeastActive
- 过滤器: Echo Health Check/服务熔断&降级
- 其他功能支持: 泛化调用/启动时检查/服务直连/多服务协议/多注册中心/多服务版本/服务分组
开发中列表:
- 集群策略: Forking
- 负载均衡策略: ConsistentHash
- 过滤器: TokenFilter/AccessLogFilter/CountFilter/ExecuteLimitFilter/TpsLimitFilter
- 注册中心: k8s
- 配置中心: apollo
- 动态配置中心 & 元数据中心 (dubbo v2.7.x)
- Metrics: Promethus(dubbo v2.7.x)
任务列表:
- 注册中心: kubernetes
- Routing: istio
- tracing (dubbo ecosystem)
你可以通过访问 roadmap 知道更多关于 dubbo-go 的信息
TODO
这个子目录下的例子展示了如何使用 dubbo-go 。请仔细阅读 examples/README.md 学习如何处理配置并编译程序。
go test ./...
# 覆盖率
go test ./... -coverprofile=coverage.txt -covermode=atomic
如果您愿意给 Apache/dubbo-go 贡献代码或者文档,我们都热烈欢迎。具体请参考 contribution intro。
性能测试项目是 go-for-apache-dubbo-benchmark
关于 dubbo-go 性能测试报告,请阅读 dubbo benchmarking report & jsonrpc benchmarking report
若你正在使用 apache/dubbo-go 且认为其有用或者向对其做改进,请忝列贵司信息于 用户列表,以便我们知晓之。