github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/README.md (about)

     1  <p align="center">
     2    <a href="https://go-doudou.github.io" target="_blank" rel="noopener noreferrer">
     3      <img width="180" src="https://go-doudou.github.io/hero.png" alt="Vite logo">
     4    </a>
     5  </p>
     6  <br/>
     7  <p align="center">
     8    <a href="https://github.com/avelino/awesome-go"><img src="https://awesome.re/mentioned-badge.svg" alt="Mentioned in Awesome Go"></a>
     9    <a href="https://godoc.org/github.com/unionj-cloud/go-doudou"><img src="https://godoc.org/github.com/unionj-cloud/go-doudou?status.png" alt="GoDoc"></a>
    10    <a href="https://github.com/unionj-cloud/go-doudou/actions/workflows/go.yml"><img src="https://github.com/unionj-cloud/go-doudou/actions/workflows/go.yml/badge.svg?branch=main" alt="Go"></a>
    11    <a href="https://codecov.io/gh/unionj-cloud/go-doudou"><img src="https://codecov.io/gh/unionj-cloud/go-doudou/branch/main/graph/badge.svg?token=QRLPRAX885" alt="codecov"></a>
    12    <a href="https://goreportcard.com/report/github.com/unionj-cloud/go-doudou"><img src="https://goreportcard.com/badge/github.com/unionj-cloud/go-doudou" alt="Go Report Card"></a>
    13    <a href="https://github.com/unionj-cloud/go-doudou"><img src="https://img.shields.io/github/v/release/unionj-cloud/go-doudou?style=flat-square" alt="Release"></a>
    14    <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
    15    <a href="https://wakatime.com/badge/user/852bcf22-8a37-460a-a8e2-115833174eba/project/57c830f7-e507-4cb1-9fd1-feedd96685f6"><img src="https://wakatime.com/badge/user/852bcf22-8a37-460a-a8e2-115833174eba/project/57c830f7-e507-4cb1-9fd1-feedd96685f6.svg" alt="License: MIT"></a>
    16  </p>
    17  <br/>
    18  
    19  # go-doudou
    20  
    21  > Lightweight Golang Microservice Framework
    22  
    23  - 💡 Starts from golang interface, no need to learn new IDL(interface definition language).
    24  - 🛠️ Built-in SWIM gossip protocol based service register and discovery mechanism to help you build a robust, scalable and decentralized service cluster.
    25  - 🔩 Powerful code generator cli built-in. After defining your interface methods, your only job is implementing your awesome idea.
    26  - ⚡ Born from the cloud-native era. Built-in CLI can speed up your product iteration.
    27  - 🔑 Built-in service governance support including remote configuration management, client-side load balancer, rate limiter, circuit breaker, bulkhead, timeout, retry and more.
    28  - 📦️ Supporting both monolith and microservice architectures gives you flexibility to design your system.
    29  
    30  Go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.  
    31  
    32  Read the Docs [https://go-doudou.github.io](https://go-doudou.github.io) to Learn More.
    33  
    34  ## Benchmark
    35  
    36  ![benchmark](./benchmark.png)
    37  
    38  Machine: `MacBook Pro (16-inch, 2019)`  
    39  CPU: `2.3 GHz 8 cores Intel Core i9`  
    40  Memory: `16 GB 2667 MHz DDR4`
    41  ProcessingTime: `0ms, 10ms, 100ms, 500ms`  
    42  Concurrency: `1000`  
    43  Duration: `30s`  
    44  go-doudou Version: `v1.3.7`  
    45  
    46  [Checkout the test code](https://github.com/wubin1989/go-web-framework-benchmark)
    47  
    48  ## Credits
    49  
    50  Give credits to following repositories and all their contributors:
    51  - [hashicorp/memberlist](https://github.com/hashicorp/memberlist): go-doudou is relying on it to implement service register/discovery/fault tolerance feature.
    52  - [gorilla/mux](https://github.com/gorilla/mux): go-doudou is relying on it to implement http router.
    53  - [go-redis/redis_rate](github.com/go-redis/redis_rate): go-doudou is relying on it to implement redis based rate limit feature
    54  - [apolloconfig/agollo](https://github.com/apolloconfig/agollo): go-doudou is relying on it to implement remote configuration management support for [Apollo](https://github.com/apolloconfig/apollo)
    55  - [nacos-group/nacos-sdk-go](https://github.com/nacos-group/nacos-sdk-go): go-doudou is relying on it to implement service discovery and remote configuration management support for [Nacos](https://github.com/alibaba/nacos)
    56  
    57  ## Community
    58  
    59  Welcome to contribute to go-doudou by forking it and submitting pr or issues. If you like go-doudou, please give it a
    60  star!
    61  
    62  Welcome to contact me from
    63  
    64  - Facebook: [https://www.facebook.com/bin.wu.94617999/](https://www.facebook.com/bin.wu.94617999/)
    65  - Twitter: [https://twitter.com/BINWU49205513](https://twitter.com/BINWU49205513)
    66  - Email: 328454505@qq.com
    67  - WeChat:  
    68    <img src="./qrcode.png" alt="wechat-group" width="240">
    69  - WeChat Group:  
    70    <img src="./go-doudou-wechat-group.png" alt="wechat-group" width="240">
    71  - QQ group:  
    72    <img src="./go-doudou-qq-group.png" alt="qq-group" width="240">
    73  
    74  ## 🔋 JetBrains Open Source License
    75  
    76  Go-doudou has been being developed with GoLand under the **free JetBrains Open Source license(s)** granted by JetBrains s.r.o., hence I would like to express my gratitude here.
    77  
    78  <a href="https://jb.gg/OpenSourceSupport" target="_blank"><img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" alt="JetBrains Logo (Main) logo." width="300"></a>
    79  
    80  ## License
    81  
    82  MIT