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.