config.WithPath方法中ioutil.ReadFile的实参改为conf.path (#2209)

* [ISSUE #2123] Feat/polaris ratelimit (#2127)

* feat:support polaris limit ability

* [ISSUE #2172] Fix/polaris governance (#2171)

* 解决 consumer 不断重连已下线的 provider meta service 问题 (#2166)

* registry type support all

* fix test

* set default to interface

* use default protocol registry

* fix unit test

* use swith to judge

* add registry support all test

* Resolve registry name conflicts

* fix ut err

* fix https://github.com/apache/dubbo-go/issues/2159

* del front

* del front

Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>

* build(deps): bump github.com/hashicorp/vault/sdk from 0.6.0 to 0.6.2 (#2169)

Bumps [github.com/hashicorp/vault/sdk](https://github.com/hashicorp/vault) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/hashicorp/vault/releases)
- [Changelog](https://github.com/hashicorp/vault/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/vault/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/vault/sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor:polaris ability open judge

* refactor:polaris ability open judge

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: bobtthp <gzqtianc@gmail.com>
Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Dynamic update config for logger level & metric enable (#2180)

* dynamically update logger level & metric enable

* prometheus server start & shutdown

* check nil

* fix ci

Co-authored-by: huangwenkang <642380437@qq>

* Revert "Dynamic update config for logger level & metric enable (#2180)" (#2199)

This reverts commit 4c6a99bee53e64e6d883673d2f7f463b42b5c42b.

* Revert "[ISSUE #2172] Fix/polaris governance (#2171)" (#2200)

This reverts commit c1a06982596e2d0c969ff59174e42bfe42430735.

* sync: Merge the 3.0 branch into the master branch (#2201)

* 解决 consumer 不断重连已下线的 provider meta service 问题 (#2166)

* registry type support all

* fix test

* set default to interface

* use default protocol registry

* fix unit test

* use swith to judge

* add registry support all test

* Resolve registry name conflicts

* fix ut err

* fix https://github.com/apache/dubbo-go/issues/2159

* del front

* del front

Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>

* build(deps): bump github.com/hashicorp/vault/sdk from 0.6.0 to 0.6.2 (#2169)

Bumps [github.com/hashicorp/vault/sdk](https://github.com/hashicorp/vault) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/hashicorp/vault/releases)
- [Changelog](https://github.com/hashicorp/vault/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/vault/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/vault/sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix: service discovery registry notify before return (#2168)

* Fix: service discovery registry notify before return

* format import

* modify notify url

* add judge about the existence of instance's metadata revision

* build(deps): bump github.com/knadh/koanf from 1.4.4 to 1.4.5 (#2179)

Bumps [github.com/knadh/koanf](https://github.com/knadh/koanf) from 1.4.4 to 1.4.5.
- [Release notes](https://github.com/knadh/koanf/releases)
- [Commits](https://github.com/knadh/koanf/compare/v1.4.4...v1.4.5)

---
updated-dependencies:
- dependency-name: github.com/knadh/koanf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix: Replace assignment behavior with copy operation to avoid OOM problem (#2182)

* build(deps): bump github.com/hashicorp/vault/sdk from 0.6.2 to 0.7.0 (#2185)

Bumps [github.com/hashicorp/vault/sdk](https://github.com/hashicorp/vault) from 0.6.2 to 0.7.0.
- [Release notes](https://github.com/hashicorp/vault/releases)
- [Changelog](https://github.com/hashicorp/vault/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/vault/compare/v0.6.2...v0.7.0)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/vault/sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/nacos-group/nacos-sdk-go (#2183)

Bumps [github.com/nacos-group/nacos-sdk-go](https://github.com/nacos-group/nacos-sdk-go) from 1.1.3 to 1.1.4.
- [Release notes](https://github.com/nacos-group/nacos-sdk-go/releases)
- [Commits](https://github.com/nacos-group/nacos-sdk-go/compare/v1.1.3...v1.1.4)

---
updated-dependencies:
- dependency-name: github.com/nacos-group/nacos-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/knadh/koanf from 1.4.5 to 1.5.0 (#2187)

Bumps [github.com/knadh/koanf](https://github.com/knadh/koanf) from 1.4.5 to 1.5.0.
- [Release notes](https://github.com/knadh/koanf/releases)
- [Commits](https://github.com/knadh/koanf/compare/v1.4.5...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/knadh/koanf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump go.etcd.io/etcd/client/v3 from 3.5.6 to 3.5.7 (#2190)

Bumps [go.etcd.io/etcd/client/v3](https://github.com/etcd-io/etcd) from 3.5.6 to 3.5.7.
- [Release notes](https://github.com/etcd-io/etcd/releases)
- [Changelog](https://github.com/etcd-io/etcd/blob/main/Dockerfile-release.amd64)
- [Commits](https://github.com/etcd-io/etcd/compare/v3.5.6...v3.5.7)

---
updated-dependencies:
- dependency-name: go.etcd.io/etcd/client/v3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/RoaringBitmap/roaring from 1.2.0 to 1.2.2 (#2188)

Bumps [github.com/RoaringBitmap/roaring](https://github.com/RoaringBitmap/roaring) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/RoaringBitmap/roaring/releases)
- [Commits](https://github.com/RoaringBitmap/roaring/compare/v1.2.0...v1.2.2)

---
updated-dependencies:
- dependency-name: github.com/RoaringBitmap/roaring
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/RoaringBitmap/roaring from 1.2.2 to 1.2.3 (#2195)

Bumps [github.com/RoaringBitmap/roaring](https://github.com/RoaringBitmap/roaring) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/RoaringBitmap/roaring/releases)
- [Commits](https://github.com/RoaringBitmap/roaring/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: github.com/RoaringBitmap/roaring
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [ISSUE #2172] Fix/polaris governance (#2171)

* 解决 consumer 不断重连已下线的 provider meta service 问题 (#2166)

* registry type support all

* fix test

* set default to interface

* use default protocol registry

* fix unit test

* use swith to judge

* add registry support all test

* Resolve registry name conflicts

* fix ut err

* fix https://github.com/apache/dubbo-go/issues/2159

* del front

* del front

Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>

* build(deps): bump github.com/hashicorp/vault/sdk from 0.6.0 to 0.6.2 (#2169)

Bumps [github.com/hashicorp/vault/sdk](https://github.com/hashicorp/vault) from 0.6.0 to 0.6.2.
- [Release notes](https://github.com/hashicorp/vault/releases)
- [Changelog](https://github.com/hashicorp/vault/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/vault/compare/v0.6.0...v0.6.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/vault/sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor:polaris ability open judge

* refactor:polaris ability open judge

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: bobtthp <gzqtianc@gmail.com>
Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Dynamic update config for logger level & metric enable (#2180)

* dynamically update logger level & metric enable

* prometheus server start & shutdown

* check nil

* fix ci

Co-authored-by: huangwenkang <642380437@qq>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: bobtthp <gzqtianc@gmail.com>
Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Leo Shen <694963063@qq.com>
Co-authored-by: Jason Peng <lvs.pjx@gmail.com>
Co-authored-by: liaochuntao <liaochuntao@live.com>
Co-authored-by: Wenkang Huang <52915386+huangwenkan9@users.noreply.github.com>
Co-authored-by: huangwenkang <642380437@qq>

* ci

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: liaochuntao <liaochuntao@live.com>
Co-authored-by: AlexStocks <alexstocks@foxmail.com>
Co-authored-by: bobtthp <gzqtianc@gmail.com>
Co-authored-by: bobtthp <bobtthp@bob-Mac-mini.local>
Co-authored-by: bob <bob@bobdeMacBook-Pro.local>
Co-authored-by: bobtthp <bobtthp@bob1.local>
Co-authored-by: bob <bob@bob.local>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wenkang Huang <52915386+huangwenkan9@users.noreply.github.com>
Co-authored-by: huangwenkang <642380437@qq>
Co-authored-by: Xuewei Niu <justxuewei@apache.org>
Co-authored-by: Leo Shen <694963063@qq.com>
Co-authored-by: Jason Peng <lvs.pjx@gmail.com>
Co-authored-by: aqi <aqi@xiaoshijie.com>
1 file changed
tree: f280de27c8feb954c8d9d00bbbaf72eeb7c1fa11
  1. .github/
  2. cluster/
  3. common/
  4. config/
  5. config_center/
  6. doc/
  7. filter/
  8. imports/
  9. metadata/
  10. metrics/
  11. protocol/
  12. proxy/
  13. registry/
  14. remoting/
  15. tools/
  16. xds/
  17. .asf.yaml
  18. .gitignore
  19. .gitmodules
  20. .golangci.yml
  21. CHANGELOG.md
  22. CONTRIBUTING.md
  23. go.mod
  24. go.sum
  25. integrate_test.sh
  26. LICENSE
  27. Makefile
  28. NOTICE
  29. README.md
  30. README_CN.md
README.md

Apache Dubbo-go

Build Status codecov go.dev reference Go Report Card license


中文 🇨🇳

Apache Dubbo-go, a Dubbo implementation written in Golang, is born to bridge the gap between Java/Dubbo and Go/X. Please visit our Dubbo official website for the quick start and documentation.

RPC invocation

Dubbo-go has supported many RPC protocols, like Triple, Dubbo, JSONRPC, gRPC, HTTP, HTTP2. The Triple, Dubbo and gRPC protocols supported security connections via TLS.

  • Triple is the supported protocol of Dubbo3 ecology, and is gRPC extended protocol based on HTTP2, which is compatible with gRPC service.In other words, on the basis of gRPC‘s reliable invocation, it adds Dubbo’s service governance capability.
  • Dubbo protocol is tradition Dubbo ecology protocol, which is compatible with Dubbo 2.x, and is a good choice for cross-language invocation between GO and Java legacy service.
  • HTTP support: As you can see in the figure above, you can invoke Triple/Dubbo service using HTTP protocol through dubbo-go-pixiu gateway.

Service governance capability

Getting started

Tools

  • imports-formatter formatting dubbo-go project import code block.
  • dubbo-go-cli dubbo-go command line tools, by which you can define your own request pkg and gets rsp struct of your server, test your service as telnet and generate hessian.POJO register method body.
  • dubbo-go-cli-v2 new dubbo-go line tools, you can get services from register center, create a demo , create application templates, one-click installation of protoc-gen-go-triple and imports-formatter tools,and has the same features with dubbo-go-cli.
  • protoc-gen-go-triple tripe protocol pb file generation tool.
  • protoc-gen-dubbo3grpc dubbo3 grpc pb file generation tool.

If you want to know more about dubbogo tools, please visit https://github.com/apache/dubbo-go/blob/master/dubbogo-cli and read its readme carefully.

Intellij plugin

  • Windows: File > Settings > Plugins > Browse repositories... > Search for “Dubbo Go” > Install Plugin
  • MacOS: Preferences > Settings > Plugins > Browse repositories... > Search for “Dubbo Go” > Install Plugin
  • Manually:
    • Download the latest release and install it manually using Preferences > Plugins > Install plugin from disk...
    • From official jetbrains store from download

Features

FeatureIDEAGoLand
Hessian2 Generator✅️✅️
New Project/Module✅️✅️

Project/module templates

Project/Module TemplateProgress
Sample✅️
Empty Project✅️
Empty project template middleware
MiddlewareModuleSupport
Web ServiceGin✅️
Memory CacheRedis✅️
DatabaseGorm✅️

If you want to know more about the Intellij Plugin for Dubbo-go, you may refer to https://gitee.com/changeden/intellij-plugin-dubbo-go-generator.

Ecosystem

  • Dubbo Ecosystem Entry - A GitHub group dubbo to gather all Dubbo relevant projects not appropriate in apache group yet.
  • dubbo-go-pixiu - A dynamic, high-performance API gateway solution for Dubbo and Http services.
  • dubbo-go-samples - Samples for Apache Dubbo-go.
  • dubbo-getty - A netty like asynchronous network I/O library which supports tcp/udp/websocket network protocol.
  • triple - A golang network package that based on http2, used by Dubbo-go 3.0.
  • dubbo-go-hessian2 - A golang hessian library used by Apache/dubbo-go.
  • gost - A go sdk for Apache Dubbo-go.

Contributing

Please visit CONTRIBUTING for details on submitting patches and the contribution workflow.

Reporting bugs

Please use the bug report template to report bugs, use the enhancement template to provide suggestions for improvement.

Contact

User List

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

See more user cases

License

Apache Dubbo-go software is licenced under the Apache License Version 2.0. See the LICENSE file for details.