Skip to content
Joe Zou edited this page Jun 17, 2020 · 18 revisions

Apache Dubbo-Go 中文

Build Status codecov


Apache Dubbo Go Implementation.

License

Apache License, Version 2.0

Release note

v1.4.0 - Mar 17, 2020

v1.3.0 - Mar 1, 2020

v1.2.0 - Nov 15, 2019

v1.1.0 - Sep 7, 2019 the first release after transferred to apache

v1.0.0 - May 29, 2019 compatible with dubbo v2.6.5

Code design

Extension module and layered code design based on dubbo (include protocol layer,registry layer,cluster layer,config layer and so on), Our goal is: you can implement these layered interfaces in a new way, and override the default implementation of dubbo-go[same go-for-apache-dubbo] by calling 'extension.SetXXX' of extension, and complete your special needs without modifying the source code. At the same time, you are welcome to contribute implementation of useful expansion to the community.

frame design

About detail design please refer to code layered design

Feature list

Finished List:

  • Role: Consumer(√), Provider(√)
  • Transport: HTTP(√), TCP(√)
  • Codec: JsonRPC v2(√), Hessian v2(√)
  • Registry: ZooKeeper(√)
  • Cluster Strategy: Failover(√)
  • Load Balance: Random(√)
  • Filter: Echo Health Check(√)

Working List:

  • Cluster Strategy: Failfast/Failsafe/Failback/Forking
  • Load Balance: RoundRobin/LeastActive/ConsistentHash
  • Filter: TokenFilter/AccessLogFilter/CountFilter/ActiveLimitFilter/ExecuteLimitFilter/GenericFilter/TpsLimitFilter
  • Registry: etcd/k8s/consul

Todo List:

  • routing rule (dubbo v2.6.x)
  • monitoring (dubbo v2.6.x)
  • dynamic configuration (dubbo v2.7.x)
  • metrics (dubbo v2.7.x) waiting dubbo's quota

You can know more about dubbo-go by its roadmap.

Quick Start

The subdirectory examples shows how to use dubbo-go. Please read the examples/README.md carefully to learn how to dispose the configuration and compile the program.

Benchmark

Benchmark project please refer to dubbo-go-benchmark

About dubbo-go benchmarking report, please refer to:

ctrip

Dev Plan