Sharember / dubbo-go

Go Implementation For Apache Dubbo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Apache Dubbo-go 中文

Build Status codecov


Apache Dubbo Go Implementation.

License

Apache License, Version 2.0

Release note

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

Project Architecture

Both extension module and layered project architecture is according to Apache Dubbo (including protocol layer, registry layer, cluster layer, config layer and so on), the advantage of this arch is as following: you can implement these layered interfaces in your own way, override the default implementation of dubbo-go by calling 'extension.SetXXX' of extension, complete your special needs without modifying the source code. At the same time, you are welcome to contribute implementation of useful extension to the community.

frame design

If you wanna know more about dubbo-go, please visit this reference Project Architeture design

Feature list

Finished List:

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

Working List:

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

Todo List:

  • routing rule (dubbo v2.6.x)
  • metrics (dubbo v2.7.x) waiting dubbo's quota
  • dynamic configuration center & metadata center (dubbo v2.7.x)
  • tracing (dubbo ecosystem)

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 go-for-apache-dubbo-benchmark

About dubbo-go benchmarking report, please refer to dubbo benchmarking report & jsonrpc benchmarking report

ctrip

Stargazers

Stargazers over time

About

Go Implementation For Apache Dubbo

License:Apache License 2.0


Languages

Language:Go 100.0%