Apache Dubbo-go

Build Status codecov go.dev reference Go Report Card license


English 🇺🇸

Apache Dubbo Go 语言实现,架起 Java 和 Golang 之间的桥梁,与 gRPC/Dubbo/SpringCloud 生态互联互通,带领 Java 生态享受云原生时代的技术红利。请访问Dubbo 官网查看快速开始和文档。

RPC 调用

Dubbo-go 生态覆盖多种网络协议:Triple、Dubbo、JSONRPC、gRPC、HTTP、HTTP2 等。Triple、Dubbo 和 gRPC 协议支持基于 TLS 的安全通信。

  • Triple 协议是 Dubbo3 生态主推的协议,是基于 gRPC 的扩展协议,底层为HTTP2,可与 gRPC 服务互通。相当于在 gRPC 可靠的传输基础上,增加了 Dubbo 的服务治理能力。
  • Dubbo 协议是 Dubbo 生态的传统协议,dubbo-go 支持的 dubbo 协议与dubbo2.x 版本兼容,是 Go 语言和旧版本 Dubbo 服务互通的不错选择。
  • 我们支持通过貔貅网关暴露 Triple/Dubbo 协议到集群外部,调用者可以直接通过HTTP 协议调用 Dubbo-go 服务。

服务治理

  • 注册中心:

    支持 Nacos(阿里开源) 、Zookeeper、ETCD、Consul、Polaris-mesh(腾讯开源) 等服务注册中间件,并拥有可扩展能力。我们也会根据用户使用情况,进一步扩展出用户需要的实现。

  • 配置中心

    开发者可以使用Nacos、Zookeeper 进行框架/用户的配置的发布和拉取。

  • 集群策略: Failover, Failfast, Failsafe/Failback, Available, Broadcast, Forking

  • 负载均衡策略: 柔性服务, Random, RoundRobin, LeastActive, ConsistentHash

  • 过滤器: Echo, Hystrix, Token, AccessLog, TpsLimiter, ExecuteLimit, Generic, Auth/Sign, Metrics, Tracing, Active, Seata, Sentinel 等

  • 泛化调用

  • 监控: Prometheus

  • 链路追踪: Jaeger, Zipkin

  • 路由器: Dubbo3 Router

快速开始

工具

  • imports-formatter dubbo-go 工程 import 代码块格式化工具
  • dubbo-go-cli dubbo-go 命令行工具、支持展示服务、发起服务调用、定义 dubbogo 服务 struct 等功能、生成 hessian.POJO 方法体
  • dubbo-go-cli-v2 新 dubbo-go 命令行工具, 支持创建 demo、创建应用模版、一键安装 protoc-gen-go-triple 及 imports-formatter 工具,从注册中心获取服务列表以及兼容 dubbo-go-cli 的所有功能
  • protoc-gen-go-triple tripe 协议 pb 生成工具
  • protoc-gen-dubbo3grpc dubbo3 grpc 生成工具

如果想知道 dubbogo 工具集更多更详细的使用细节,请访问 https://github.com/apache/dubbo-go/blob/master/dubbogo-cli 并仔细阅读其 raedme。

Intellij 插件

  • Windows: File > Settings > Plugins > Browse repositories... > 搜索 “Dubbo Go” > Install Plugin
  • MacOS: Preferences > Settings > Plugins > Browse repositories... > 搜索 “Dubbo Go” > Install Plugin
  • 手动安装:

功能特性

特性IDEAGoLand
Hessian2 生成器✅️✅️
创建项目/模块✅️✅️

创建新项目

项目/模块模板进度
官方例子✅️
空项目✅️
空项目模板中间件
中间件类型可选模块是否支持
网络服务Gin✅️
内存缓存Redis✅️
数据库Gorm✅️

如果想知道 dubbogo 工具集更多更详细的使用细节,请访问 https://gitee.com/changeden/intellij-plugin-dubbo-go-generator 并仔细阅读其 raedme。

生态

如何贡献

请访问CONTRIBUTING来了解如何提交更新以及贡献工作流。

报告问题

请使用bug report 模板报告错误,使用enhancement 模版提交改进建议。

联系

用户列表

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

许可证

Apache Dubbo-go使用Apache许可证2.0版本,请参阅LICENSE文件了解更多。