dubbo.apache.org/dubbo-go/v3@v3.1.1/README.md (about) 1 # Apache Dubbo-go 2 3 [![Build Status](https://github.com/apache/dubbo-go/workflows/CI/badge.svg)](https://travis-ci.org/apache/dubbo-go) 4 [![codecov](https://codecov.io/gh/apache/dubbo-go/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-go) 5 [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/apache/dubbo-go?tab=doc) 6 [![Go Report Card](https://goreportcard.com/badge/github.com/apache/dubbo-go)](https://goreportcard.com/report/github.com/apache/dubbo-go) 7 ![license](https://img.shields.io/badge/license-Apache--2.0-green.svg) 8 9 --- 10 11 [δΈζ π¨π³](./README_CN.md) 12 13 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](https://dubbo.apache.org/zh/docs3-v2/golang-sdk/) for the quick start and documentation. 14 15 ## RPC invocation 16 17 <img src="https://dubbo-go-pixiu.github.io/img/pixiu-dubbo-ecosystem.png" height="400px" display="display: block, margin: auto" /> 18 19 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. 20 21 - 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.** 22 - 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. 23 - HTTP support: As you can see in the figure above, you can invoke Triple/Dubbo service using HTTP protocol through [dubbo-go-pixiu](https://github.com/apache/dubbo-go-pixiu) gateway. 24 25 ## Service governance capability 26 27 <img src="https://dubbogo.github.io/img/devops.png" height="300px" display="display: block, margin: auto" /> 28 29 - **Registry**: Nacos, Zookeeper, ETCD, Polaris-mesh, Consul. 30 - **ConfigCenter**: Nacos, Zookeeper 31 - **Cluster Strategy**: Failover, [Failfast](https://github.com/apache/dubbo-go/pull/140), [Failsafe/Failback](https://github.com/apache/dubbo-go/pull/136), [Available](https://github.com/apache/dubbo-go/pull/155), [Broadcast](https://github.com/apache/dubbo-go/pull/158), [Forking](https://github.com/apache/dubbo-go/pull/161) 32 - **Load Balance**: [AdaptiveService](https://github.com/apache/dubbo-go/pull/1649), Random, [RoundRobin](https://github.com/apache/dubbo-go/pull/66), [LeastActive](https://github.com/apache/dubbo-go/pull/65), [ConsistentHash](https://github.com/apache/dubbo-go/pull/261) 33 - [**Filter**](./filter): Echo, Hystrix, Token, AccessLog, TpsLimiter, ExecuteLimit, Generic, Auth/Sign, Metrics, Tracing, Active, Seata, Sentinel 34 - **[Generic Invoke](https://github.com/apache/dubbo-go/pull/122)** 35 - **Monitor**: [Prometheus](https://github.com/apache/dubbo-go/pull/342) 36 - **Tracing**: Jaeger, Zipkin 37 - **Router**: [Dubbo3 Router](https://github.com/apache/dubbo-go/pull/1187) 38 39 ## Getting started 40 41 - Dubbo-go Quick Start: [δΈζ π¨π³](https://dubbogo.github.io/zh-cn/docs/user/quickstart/3.0/quickstart_triple.html), [English πΊπΈ](https://dubbogo.github.io/en-us/docs/user/quickstart/3.0/quickstart_triple.html) 42 - [Dubbo-go Samples](https://github.com/apache/dubbo-go-samples): The project gives a series of samples that show each feature available for Dubbo-go and help you know how to integrate Dubbo-go with your system. 43 - [Dubbo-go Benchmark](https://github.com/dubbogo/dubbo-go-benchmark) 44 - [Dubbo-go Wiki](https://github.com/apache/dubbo-go/wiki) 45 46 ## Tools 47 48 * [imports-formatter](https://github.com/dubbogo/tools/blob/master/cmd/imports-formatter/main.go) formatting dubbo-go project import code block. 49 * [dubbo-go-cli](https://github.com/dubbogo/tools/blob/master/cmd/dubbogo-cli/main.go) 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. 50 * [dubbo-go-cli-v2](https://github.com/dubbogo/tools/blob/master/cmd/dubbogo-cli-v2/README_CN.md) 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](https://github.com/dubbogo/tools/blob/master/cmd/dubbogo-cli/main.go). 51 * [protoc-gen-go-triple](https://github.com/dubbogo/tools/blob/master/cmd/protoc-gen-go-triple/main.go) tripe protocol pb file generation tool. 52 * [protoc-gen-dubbo3grpc](https://github.com/dubbogo/tools/blob/master/cmd/protoc-gen-dubbo3grpc/main.go) dubbo3 grpc pb file generation tool. 53 54 55 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. 56 57 ## Intellij plugin 58 59 * Windows: File > Settings > Plugins > Browse repositories... > Search for "Dubbo Go" > Install Plugin 60 * MacOS: Preferences > Settings > Plugins > Browse repositories... > Search for "Dubbo Go" > Install Plugin 61 * Manually: 62 * Download the [latest release](https://plugins.jetbrains.com/plugin/18581-dubbo-go) and install it manually using Preferences > Plugins > Install plugin from disk... 63 * From official jetbrains store from download 64 65 66 ### Features 67 | Feature | IDEA | GoLand | 68 |:------------------:|:----:|:------:| 69 | Hessian2 Generator | β οΈ | β οΈ | 70 | New Project/Module | β οΈ | β οΈ | 71 72 #### Project/module templates 73 | Project/Module Template | Progress | 74 |:-----------------------:|:--------:| 75 | Sample | β οΈ | 76 | Empty Project | β οΈ | 77 78 ##### Empty project template middleware 79 | Middleware | Module | Support | 80 |:------------:|:-------------------------------------:|:-------:| 81 | Web Service | [Gin](github.com/gin-gonic/gin) | β οΈ | 82 | Memory Cache | [Redis](github.com/go-redis/redis/v8) | β οΈ | 83 | Database | [Gorm](gorm.io/gorm) | β οΈ | 84 85 86 If you want to know more about the Intellij Plugin for Dubbo-go, you may 87 refer to [https://gitee.com/changeden/intellij-plugin-dubbo-go-generator](https://gitee.com/changeden/intellij-plugin-dubbo-go-generator). 88 89 ## Ecosystem 90 91 * [Dubbo Ecosystem Entry](https://github.com/apache?utf8=%E2%9C%93&q=dubbo&type=&language=) - A GitHub group `dubbo` to gather all Dubbo relevant projects not appropriate in [apache](https://github.com/apache) group yet. 92 * [dubbo-go-pixiu](https://github.com/apache/dubbo-go-pixiu) - A dynamic, high-performance API gateway solution for Dubbo and Http services. 93 * [dubbo-go-samples](https://github.com/apache/dubbo-go-samples) - Samples for Apache Dubbo-go. 94 * [dubbo-getty](https://github.com/apache/dubbo-getty) - A netty like asynchronous network I/O library which supports tcp/udp/websocket network protocol. 95 * [triple](https://github.com/dubbogo/triple) - A golang network package that based on http2, used by Dubbo-go 3.0. 96 * [dubbo-go-hessian2](https://github.com/apache/dubbo-go-hessian2) - A golang hessian library used by Apache/dubbo-go. 97 * [gost](https://github.com/dubbogo/gost) - A go sdk for Apache Dubbo-go. 98 99 100 ## Contributing 101 102 Please visit [CONTRIBUTING](./CONTRIBUTING.md) for details on submitting patches and the contribution workflow. 103 104 ## Reporting bugs 105 106 Please use the [bug report template](issues/new?template=bug-report.md) to report bugs, use the [enhancement template](issues/new?template=enhancement.md) to provide suggestions for improvement. 107 108 ## Contact 109 110 - [DingTalk Group](https://www.dingtalk.com/en): 23331795 111 112 ## [User List](https://github.com/apache/dubbo-go/issues/2) 113 114 If you are using [apache/dubbo-go](https://github.com/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](https://github.com/apache/dubbo-go/issues/2) to let us know your needs. 115 116 117 <div> 118 <table> 119 <tbody> 120 <tr></tr> 121 <tr> 122 <td align="center" valign="middle"> 123 <a href="" target="_blank"> 124 <img width="222px" src="https://pic.c-ctrip.com/common/c_logo2013.png"> 125 </a> 126 </td> 127 <td align="center" valign="middle"> 128 <a href="" target="_blank"> 129 <img width="222px" src="https://user-images.githubusercontent.com/52339367/84628582-80512200-af1b-11ea-945a-c6b4b9ad31f2.png"> 130 </a> 131 </td> 132 <td align="center" valign="middle"> 133 <a href="" target="_blank"> 134 <img width="222px" src="https://mosn.io/images/community/tuya.png"> 135 </a> 136 </td> 137 <td align="center" valign="middle"> 138 <a href="https://github.com/mosn" target="_blank"> 139 <img width="222px" src="https://raw.githubusercontent.com/mosn/community/master/icons/png/mosn-labeled-horizontal.png"> 140 </a> 141 </td> 142 <td align="center" valign="middle"> 143 <a href="" target="_blank"> 144 <img width="222px" src="https://festatic.estudy.cn/assets/xhx-web/layout/logo.png"> 145 </a> 146 </td> 147 </tr> 148 <tr></tr> 149 <tr> 150 <td align="center" valign="middle"> 151 <a href="http://www.j.cn" target="_blank"> 152 <img width="222px" src="http://image.guang.j.cn/bbs/imgs/home/pc/icon_8500.png"> 153 </a> 154 </td> 155 <td align="center" valign="middle"> 156 <a href="https://www.genshuixue.com/" target="_blank"> 157 <img width="222px" src="https://i.gsxcdn.com/0cms/d/file/content/2020/02/5e572137d7d94.png"> 158 </a> 159 </td> 160 <td align="center" valign="middle"> 161 <a href="http://www.51h5.com" target="_blank"> 162 <img width="222px" src="https://fs-ews.51h5.com/common/hw_220_black.png"> 163 </a> 164 </td> 165 <td align="center" valign="middle"> 166 <a href="https://www.zto.com" target="_blank"> 167 <img width="222px" src="https://fscdn.zto.com/fs8/M02/B2/E4/wKhBD1-8o52Ae3GnAAASU3r62ME040.png"> 168 </a> 169 </td> 170 <td align="center" valign="middle"> 171 <a href="https://www.icsoc.net/" target="_blank"> 172 <img width="222px" src="https://help.icsoc.net/img/icsoc-logo.png"> 173 </a> 174 </td> 175 </tr> 176 <tr></tr> 177 <tr> 178 <td align="center" valign="middle"> 179 <a href="http://www.mgtv.com" target="_blank"> 180 <img width="222px" src="https://ugc.hitv.com/platform_oss/F6077F1AA82542CDBDD88FD518E6E727.png"> 181 </a> 182 </td> 183 <td align="center" valign="middle"> 184 <a href="http://www.dmall.com" target="_blank"> 185 <img width="222px" src="https://mosn.io/images/community/duodian.png"> 186 </a> 187 </td> 188 <td align="center" valign="middle"> 189 <a href="http://www.ruubypay.com" target="_blank"> 190 <img width="222px" src="http://website.ruubypay.com/wifi/image/line5.png"> 191 </a> 192 </td> 193 <td align="center" valign="middle"> 194 <a href="https://www.dingtalk.com" target="_blank"> 195 <img width="222px" src="https://gw.alicdn.com/tfs/TB1HPATMrrpK1RjSZTEXXcWAVXa-260-74.png"> 196 </a> 197 </td> 198 <td align="center" valign="middle"> 199 <a href="https://www.autohome.com.cn" target="_blank"> 200 <img width="222px" src="https://avatars.githubusercontent.com/u/18279051?s=200&v=4"> 201 </a> 202 </td> 203 </tr> 204 <tr></tr> 205 <tr> 206 <td align="center" valign="middle"> 207 <a href="https://www.mi.com/" target="_blank"> 208 <img width="222px" src="https://s02.mifile.cn/assets/static/image/logo-mi2.png"> 209 </a> 210 </td> 211 <td align="center" valign="middle"> 212 <a href="https://opayweb.com/" target="_blank"> 213 <img width="222px" src="https://open.opayweb.com/static/img/logo@2x.35c6fe4c.jpg"> 214 </a> 215 </td> 216 <td align="center" valign="middle"> 217 <a href="http://www.zongheng.com/" target="_blank"> 218 <img width="222px" src="https://img.xmkanshu.com/u/202204/01/201253131.png"> 219 </a> 220 </td> 221 <td align="center" valign="middle"> 222 <a href="https://amap.com/" target="_blank"> 223 <img width="222px" src="https://github.com/seven-tan/static/blob/main/logo.png" > 224 </a> 225 </td> 226 <td align="center" valign="middle"> 227 <a href="https://chinaz.com/" target="_blank"> 228 <img width="222px" src="https://img.chinaz.com/2020/img/chinaz-logo.png" > 229 </a> 230 </td> 231 </tr> 232 <tr></tr> 233 </tbody> 234 </table> 235 </div> 236 237 [See more user cases](https://github.com/apache/dubbo-go/issues/2) 238 239 ## License 240 241 Apache Dubbo-go software is licenced under the Apache License Version 2.0. See the LICENSE file for details.