Apache Dubbo-go

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

Github星跟蹤圖

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 且认为其有用或者向对其做改进,请忝列贵司信息于 用户列表,以便我们知晓之。

主要指標

概覽
名稱與所有者apache/dubbo-go
主編程語言Go
編程語言Go (語言數: 5)
平台Linux, Mac, Windows
許可證Apache License 2.0
所有者活动
創建於2018-08-08 05:30:36
推送於2025-04-22 05:07:33
最后一次提交
發布數63
最新版本名稱v3.3.0 (發布於 2025-03-22 18:20:20)
第一版名稱v0.1.1 (發布於 2019-03-10 01:37:05)
用户参与
星數4.8k
關注者數159
派生數0.9k
提交數9.1k
已啟用問題?
問題數836
打開的問題數61
拉請求數1459
打開的拉請求數10
關閉的拉請求數518
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

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