Update readme.md (#3630)
This commit is contained in:
74
readme.md
74
readme.md
@@ -31,12 +31,12 @@ go-zero contains simple API description syntax and code generation tool called `
|
||||
|
||||
#### Advantages of go-zero:
|
||||
|
||||
* improve the stability of the services with tens of millions of daily active users
|
||||
* builtin chained timeout control, concurrency control, rate limit, adaptive circuit breaker, adaptive load shedding, even no configuration needed
|
||||
* builtin middlewares also can be integrated into your frameworks
|
||||
* simple API syntax, one command to generate a couple of different languages
|
||||
* auto validate the request parameters from clients
|
||||
* plenty of builtin microservice management and concurrent toolkits
|
||||
* Improves the stability of the services with tens of millions of daily active users
|
||||
* Builtin chained timeout control, concurrency control, rate limit, adaptive circuit breaker, adaptive load shedding, even no configuration needed
|
||||
* Builtin middlewares also can be integrated into your frameworks
|
||||
* Simple API syntax, one command to generate a couple of different languages
|
||||
* Auto validate the request parameters from clients
|
||||
* Plenty of builtin microservice management and concurrent toolkits
|
||||
|
||||
<img src="https://raw.githubusercontent.com/zeromicro/zero-doc/main/doc/images/architecture-en.png" alt="Architecture" width="1500" />
|
||||
|
||||
@@ -45,27 +45,27 @@ go-zero contains simple API description syntax and code generation tool called `
|
||||
At the beginning of 2018, we decided to re-design our system, from monolithic architecture with Java+MongoDB to microservice architecture. After research and comparison, we chose to:
|
||||
|
||||
* Golang based
|
||||
* great performance
|
||||
* simple syntax
|
||||
* proven engineering efficiency
|
||||
* extreme deployment experience
|
||||
* less server resource consumption
|
||||
* Great performance
|
||||
* Simple syntax
|
||||
* Proven engineering efficiency
|
||||
* Extreme deployment experience
|
||||
* Less server resource consumption
|
||||
* Self-designed microservice architecture
|
||||
* I have rich experience in designing microservice architectures
|
||||
* easy to locate the problems
|
||||
* easy to extend the features
|
||||
* Easy to locate the problems
|
||||
* Easy to extend the features
|
||||
|
||||
## Design considerations on go-zero
|
||||
|
||||
By designing the microservice architecture, we expected to ensure stability, as well as productivity. And from just the beginning, we have the following design principles:
|
||||
|
||||
* keep it simple
|
||||
* high availability
|
||||
* stable on high concurrency
|
||||
* easy to extend
|
||||
* resilience design, failure-oriented programming
|
||||
* try best to be friendly to the business logic development, encapsulate the complexity
|
||||
* one thing, one way
|
||||
* Keep it simple
|
||||
* High availability
|
||||
* Stable on high concurrency
|
||||
* Easy to extend
|
||||
* Resilience design, failure-oriented programming
|
||||
* Try best to be friendly to the business logic development, encapsulate the complexity
|
||||
* One thing, one way
|
||||
|
||||
After almost half a year, we finished the transfer from a monolithic system to microservice system and deployed on August 2018. The new system guaranteed business growth and system stability.
|
||||
|
||||
@@ -73,19 +73,19 @@ After almost half a year, we finished the transfer from a monolithic system to m
|
||||
|
||||
go-zero is a web and rpc framework that integrates lots of engineering practices. The features are mainly listed below:
|
||||
|
||||
* powerful tool included, less code to write
|
||||
* simple interfaces
|
||||
* fully compatible with net/http
|
||||
* middlewares are supported, easy to extend
|
||||
* high performance
|
||||
* failure-oriented programming, resilience design
|
||||
* builtin service discovery, load balancing
|
||||
* builtin concurrency control, adaptive circuit breaker, adaptive load shedding, auto-trigger, auto recover
|
||||
* auto validation of API request parameters
|
||||
* chained timeout control
|
||||
* auto management of data caching
|
||||
* call tracing, metrics, and monitoring
|
||||
* high concurrency protected
|
||||
* Powerful tool included, less code to write
|
||||
* Simple interfaces
|
||||
* Fully compatible with net/http
|
||||
* Middlewares are supported, easy to extend
|
||||
* High performance
|
||||
* Failure-oriented programming, resilience design
|
||||
* Builtin service discovery, load balancing
|
||||
* Builtin concurrency control, adaptive circuit breaker, adaptive load shedding, auto-trigger, auto recover
|
||||
* Auto validation of API request parameters
|
||||
* Chained timeout control
|
||||
* Auto management of data caching
|
||||
* Call tracing, metrics, and monitoring
|
||||
* High concurrency protected
|
||||
|
||||
As below, go-zero protects the system with a couple of layers and mechanisms:
|
||||
|
||||
@@ -105,13 +105,13 @@ go get -u github.com/zeromicro/go-zero
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. full examples can be checked out from below:
|
||||
1. Full examples can be checked out from below:
|
||||
|
||||
[Rapid development of microservice systems](https://github.com/zeromicro/zero-doc/blob/main/doc/shorturl-en.md)
|
||||
|
||||
[Rapid development of microservice systems - multiple RPCs](https://github.com/zeromicro/zero-doc/blob/main/docs/zero/bookstore-en.md)
|
||||
|
||||
2. install goctl
|
||||
2. Install goctl
|
||||
|
||||
`goctl`can be read as `go control`. `goctl` means not to be controlled by code, instead, we control it. The inside `go` is not `golang`. At the very beginning, I was expecting it to help us improve productivity, and make our lives easier.
|
||||
|
||||
@@ -135,7 +135,7 @@ go get -u github.com/zeromicro/go-zero
|
||||
|
||||
make sure goctl is executable.
|
||||
|
||||
3. create the API file, like greet.api, you can install the plugin of goctl in vs code, api syntax is supported.
|
||||
3. Create the API file, like greet.api, you can install the plugin of goctl in vs code, api syntax is supported.
|
||||
|
||||
```go
|
||||
type (
|
||||
@@ -160,7 +160,7 @@ go get -u github.com/zeromicro/go-zero
|
||||
goctl api -o greet.api
|
||||
```
|
||||
|
||||
4. generate the go server-side code
|
||||
4. Generate the go server-side code
|
||||
|
||||
```shell
|
||||
goctl api go -api greet.api -dir greet
|
||||
|
||||
Reference in New Issue
Block a user