https://github.com/feixiao/go-zero-demo
go-zero服务框架使用演示,包括监控等
https://github.com/feixiao/go-zero-demo
go-zero grpc grpc-go microservice
Last synced: 3 months ago
JSON representation
go-zero服务框架使用演示,包括监控等
- Host: GitHub
- URL: https://github.com/feixiao/go-zero-demo
- Owner: feixiao
- Created: 2021-07-27T06:33:01.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-11-19T11:11:13.000Z (over 3 years ago)
- Last Synced: 2025-04-19T01:57:17.120Z (11 months ago)
- Topics: go-zero, grpc, grpc-go, microservice
- Language: Go
- Homepage:
- Size: 76.2 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
## go-zero使用程序
#### 功能试用
+ [x] 错误提示
+ rpc和api通过使用code包方便传递给调用方错误信息
+ [x] 支持中间件,方便扩展
+ [x] 内建服务发现、负载均衡(基于grpc和etcd那一套)
+ [x] 内建限流、熔断、降载,且自动触发,自动恢复
+ RestFul 通过内置的中间件已经实现。
+ GRPC 通过内置的Interceptor的已经实现。
+ [x] API 参数自动校验
+ 在api文件和proto文件添加tag自动校验
+ [x] 超时级联控制
context 传递?
+ [x] 数据库缓存代码自动化生成,自动缓存控制
```shell
# 内置工具通过sql文件自动化生成,也可以通过数据库表生成
# 带redis缓存版本,操作MySQL版本
goctl model mysql ddl -c -src user.sql -dir ./model
# 不带redis缓存版本,只操作MySQL版本
goctl model mysql ddl -src user.sql -dir ./model
```
+ [ ] 链路跟踪
+ [ ] 服务监控
服务监控目前没有支持服务对redis和mysql的调用监控。
+ promethus部署
```shell
```
+ [ ] 日志收集
+ [ ] 高并发支撑,高并发
### 运行
```shell
# 运行rpc服务
cd rpc
make run
# 运行rest服务
cd api
make run
```
#### 创建用户
```shell
curl -v -X POST "http://localhost:8888/v1/user" \
-H "accept: application/json" -H "Content-Type: application/json" -d "{ \"password\": \"123456\", \"username\": \"frank\"}"
```
#### 获取用户信息
```shell
curl -v "http://localhost:8888/v1/user/4"
```
#### 压力测试
```shell
./wrktest.sh
```
### 参考资料
+ [官方文档](https://go-zero.dev/cn/)
+ [1.1.8版本源码分析](https://gitee.com/frank2020/go-zero)