Apache Dubbo-go English

Build Status codecov


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/nacos
  • 配置中心: Zookeeper
  • 集群策略: Failover/Failfast/Failsafe/Failback/Available/Broadcast
  • 负载均衡策略: Random/RoundRobin/LeastActive
  • 过滤器: Echo Health Check
  • 其他功能支持: 泛化调用/启动时检查/服务直连/多服务协议/多注册中心/多服务版本/服务分组

开发中列表:

  • 集群策略: Forking
  • 负载均衡策略: ConsistentHash
  • 过滤器: TokenFilter/AccessLogFilter/CountFilter/ExecuteLimitFilter/TpsLimitFilter
  • 注册中心: etcd/k8s/consul/nacos
  • 配置中心: 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

User List

若你正在使用 apache/dubbo-go 且认为其有用或者向对其做改进,请忝列贵司信息于 用户列表,以便我们知晓之。

ctrip

Stargazers

Stargazers over time