go-doudou

command module
v1.3.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2022 License: MIT Imports: 1 Imported by: 0

README

Vite logo


Mentioned in Awesome Go GoDoc Go codecov Go Report Card Release


go-doudou

Lightweight Golang Microservice Framework

  • 💡 Starts from golang interface, no need to learn new IDL(interface definition language).
  • 🛠️ Built-in SWIM gossip protocol based service register and discovery mechanism to help you build a robust, scalable and decentralized service cluster.
  • 🔩 Powerful code generator cli built-in. After defining your interface methods, your only job is implementing your awesome idea.
  • ⚡ Born from the cloud-native era. Built-in CLI can speed up your product iteration.
  • 🔑 Built-in service governance support including remote configuration management, client-side load balancer, rate limiter, circuit breaker, bulkhead, timeout, retry and more.
  • 📦️ Supporting both monolith and microservice architectures gives you flexibility to design your system.

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.

Read the Docs https://go-doudou.github.io to Learn More.

Benchmark

benchmark

Machine: MacBook Pro (16-inch, 2019)
CPU: 2.3 GHz 8 cores Intel Core i9
Memory: 16 GB 2667 MHz DDR4 ProcessingTime: 0ms, 10ms, 100ms, 500ms
Concurrency: 1000
Duration: 30s
go-doudou Version: v1.3.7

Checkout the test code

Credits

Give credits to following repositories and all their contributors:

  • hashicorp/memberlist: go-doudou is relying on it to implement service register/discovery/fault tolerance feature.
  • gorilla/mux: go-doudou is relying on it to implement http router.
  • go-redis/redis_rate: go-doudou is relying on it to implement redis based rate limit feature
  • apolloconfig/agollo: go-doudou is relying on it to implement remote configuration management support for Apollo
  • nacos-group/nacos-sdk-go: go-doudou is relying on it to implement service discovery and remote configuration management support for Nacos

Community

Welcome to contribute to go-doudou by forking it and submitting pr or issues. If you like go-doudou, please give it a star!

Welcome to contact me from

🔋 JetBrains Open Source License

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.

JetBrains Logo (Main) logo.

License

MIT

Documentation

Overview

Copyright © 2021 wubin1989 <328454505@qq.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Directories

Path Synopsis
cmd
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
framework
configmgr/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
http/httprouter
Package httprouter is a trie based high performance HTTP request router.
Package httprouter is a trie based high performance HTTP request router.
http/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
memberlist
memberlist is a library that manages cluster membership and member failure detection using a gossip based protocol.
memberlist is a library that manages cluster membership and member failure detection using a gossip based protocol.
memberlist/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
ratelimit/memrate
Package rate provides a rate limiter.
Package rate provides a rate limiter.
registry/nacos
* Copyright 1999-2020 Alibaba Group Holding Ltd.
* Copyright 1999-2020 Alibaba Group Holding Ltd.
registry/nacos/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
toolkit
cpu
ip
mem
net

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL