Apache Dubbo-go

Apache Dubbo 的 Go 语言实现。「Go Implementation For Apache Dubbo」

Github stars Tracking Chart

Apache Dubbo-go

Apache Dubbo Go 语言实现

证书

Apache License, Version 2.0

工程架构

基于 dubbo 的 extension 模块和分层的代码设计(包括 protocol layer, registry layer, cluster layer, config 等等)。我们的目标是:你可以对这些分层接口进行新的实现,并通过调用 extension 模块的 “extension.SetXXX” 方法来覆盖 dubbo-go [同 go-for-apache-dubbo ]的默认实现,以完成自己的特殊需求而无需修改源代码。同时,欢迎你为社区贡献有用的拓展实现。

框架设计

关于详细设计请阅读 code layered design

功能列表

实现列表:

开发中列表:

  • 元数据中心 (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
	

编译

请移步 dubbo-samples/golang

如何贡献

如果您愿意给 Apache/dubbo-go 贡献代码或者文档,我们都热烈欢迎。具体请参考 contribution intro

性能测试

性能测试项目是 dubbo-go-benchmark

关于 dubbo-go 性能测试报告,请阅读 dubbo benchmarking report & jsonrpc benchmarking report

User List

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

Main metrics

Overview
Name With Ownerapache/dubbo-go
Primary LanguageGo
Program languageGo (Language Count: 5)
PlatformLinux, Mac, Windows
License:Apache License 2.0
所有者活动
Created At2018-08-08 05:30:36
Pushed At2025-04-22 05:07:33
Last Commit At
Release Count63
Last Release Namev3.3.0 (Posted on 2025-03-22 18:20:20)
First Release Namev0.1.1 (Posted on 2019-03-10 01:37:05)
用户参与
Stargazers Count4.8k
Watchers Count159
Fork Count0.9k
Commits Count9.1k
Has Issues Enabled
Issues Count836
Issue Open Count61
Pull Requests Count1459
Pull Requests Open Count10
Pull Requests Close Count518
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

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

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

v1.2.0 - Nov 15, 2019

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:

Working List:

  • Load Balance: ConsistentHash
  • Registry: k8s
  • Metadata Center (dubbo v2.7.x)
  • Metrics: Opentracing/Promethus(dubbo v2.7.x)

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

feature

Document

https://dubbogo.github.io/dubbo-go-website (Improving)

Quick Start

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

Running unit tests

Prepare

Mac/Linux

sh ./before_ut.sh

Windows

before_ut.bat

Run

go test ./...

# coverage
go test ./... -coverprofile=coverage.txt -covermode=atomic

Contributing

If you are willing to do some code contributions and document contributions to Apache/dubbo-go, please visit contribution intro.

Benchmark

Benchmark project dubbo-go-benchmark.

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

User List

If you are using apache/dubbo-go and think that it helps you or want do some contributions to it, please add your company to to the user list to let us know your needs.

ctripExcellent Health Technology Group
ctrip

Stargazers

Stargazers over time