go-zero学习 第八章 总结及知识点快速导航

go-zero学习 第八章 总结及知识点快速导航

  • 1 各章节链接地址
  • 2 官方文档知识点
  • 3 第一章 基础
    • 3.1 知识点
    • 3.2 相关命令
  • 4 第二章 进阶之API
    • 4.1 知识点
    • 4.2 相关命令
  • 5 第三章 微服务
    • 5.1 知识点
    • 5.2 相关命令
  • 6 第四章 数据库操作(MySQL)
    • 6.1 知识点
    • 6.2 相关命令
  • 7 第五章 集成asynq
    • 7.1 知识点
    • 7.2 相关命令
  • 8 第六章 分布式事务dtm
    • 8.1 知识点
    • 8.2 相关命令
  • 9 第六章 第七章 运维部署(待编写)
    • 9.1 知识点
    • 9.2 相关命令

对各章节重点内容进行汇总,便于查找。

1 各章节链接地址

  1. go-zero学习 第一章 基础
  2. go-zero学习 第二章 进阶之API
  3. go-zero学习 第三章 微服务
  4. go-zero学习 第四章 数据库操作(MySQL)
  5. asynq | go-zero学习 第五章 集成asynq
  6. go-zero学习 第六章 分布式事务dtm
  7. go-zero学习 第七章 运维部署

其他:
8. go-zero学习 Mikaelemmmm的视频讲解整理
9. go-zero社区群有效信息整理【暂未开放】
10. Go Redis:https://redis.uptrace.dev/zh
11. Golang ClickHouse:https://clickhouse.uptrace.dev

2 官方文档知识点

  1. go-zero官方文档(新版)

3 第一章 基础

3.1 知识点

  1. go-zero 需要安装的组件
  2. go-zero的API服务简单入门
  3. go-zero的微服务简单入门
  4. grpc服务独立调试:6.1.5 访问gRPC 服务
  5. 目录结构介绍

3.2 相关命令

  1. go-zerogoctl工具下载
go install github.com/zeromicro/go-zero/tools/goctl@latest
  1. 验证goctl的安装结果:
goctl -v
  1. goctl一键安装 protocprotoc-gen-goprotoc-gen-go-grpc
goctl env check --install --verbose --force
  1. go-zero快速生成API服务
goctl api new greet
  1. api文件格式化
goctl api format --dir xxx.api
  1. go-zero快速生成RPC服务
goctl rpc new demo

4 第二章 进阶之API

4.1 知识点

  1. 根据api文件生成API服务命令
  2. api语法
  3. POST请求、GET请求
  4. path参数、form参数、json参数
  5. 参数修饰符
  6. 文件上传/下载/预览
  7. 请求体大小限制
  8. api分组
  9. 局部、全局中间件
  10. 统一返回信息
  11. 修改go-zero生成代码的模板

4.2 相关命令

  1. api生成api服务命令
go-zero-api\api> goctl api go -api ./doc/ucenter.api -dir ./code

5 第三章 微服务

5.1 知识点

  1. API服务调用RPC服务
  2. JWT鉴权
  3. 服务注册/发现(etcd/IP直连)
  4. API服务与RPC服务之间文件传输
  5. RPC分组
  6. 超时时间
  7. grpc服务端接收请求体大小限制
  8. grpc客户端接收响应体大小限制
  9. APIRPC服务拦截器
  10. 服务间通过metadata代替context传值
  11. RPC服务如何独立调试

5.2 相关命令

  1. goctl使用api文件生成api服务命令:
\go-zero-micro\api> goctl api go -api ./doc/all.api -dir ./code/ucenterapi
  1. goctl使用protoc文件生成rpc服务命令:
goctl rpc protoc ./proto/ucenter.proto --go_out=./code/ucenter --go-grpc_out=./code/ucenter --zrpc_out=./code/ucenter --multiple

注意:--go_out--go-grpc_out--zrpc_out 三者配置的路径需要完全一致,否则会报下列错误。

the output of pb.go and _grpc.pb.go must not be the same with --zrpc_out

6 第四章 数据库操作(MySQL)

6.1 知识点

  1. sqlx代码文件讲解
  2. 新增操作接口及其实现
  3. RPC服务使用sqlx步骤
  4. sqlx使用事务
  5. 使用泛型进一步优化sqlx代码
  6. sqlc及缓存的使用
  7. sqlc执行源码分析与model详解
  8. go-zero使用gorm
  9. go-zero使用Redis

6.2 相关命令

生成sqlx代码命令:

注意:最后的参数-style=go_zero是指定生成文件名称的格式,这里是蛇形命名,不喜欢的可以去除这个参数。

  1. 使用sql 文件生成sqlx代码的命令:【推荐】

单表:

goctl model mysql ddl -src="./rpc/database/sql/user/zero_users.sql" -dir="./rpc/database/sqlx/usermodel" -style=go_zero

多表:

goctl model mysql ddl -src="./rpc/database/sql/user/zero_*.sql" -dir="./rpc/database/sqlx/usermodel" -style=go_zero

-srcsql文件目录;
-dirsqlx代码目录;


  1. 使用数据库连接生成sqlx代码的命令:
goctl model mysql datasource -url="root:root@tcp(127.0.0.1:3357)/go-zero-micro" -table="zero_users" -dir="./rpc/database/sqlx/usermodel"

-url:数据库连接;
-table:数据表;
-dirsqlx代码目录;


生成sqlc代码命令:

同生成sqlx代码的命令类似,只是后面需要再加一个 -cache即可。

  1. 使用sql 文件生成sqlc代码的命令:【推荐】

单表:

goctl model mysql ddl -src="./rpc/database/sql/user/zero_users.sql" -dir="./rpc/database/sqlc/usermodel" -style=go_zero -cache

多表:

goctl model mysql ddl -src="./rpc/database/sql/user/zero_*.sql" -dir="./rpc/database/sqlc/usermodel" -style=go_zero -cache

-srcsql文件目录;
-dirsqlc代码目录;


  1. 使用数据库连接生成sqlc代码的命令:
goctl model mysql datasource -url="root:root@tcp(127.0.0.1:3357)/go-zero-micro" -table="zero_users" -dir="./rpc/database/sqlc/usermodel" -cache

-url:数据库连接;
-table:数据表;
-dirsqlc代码目录;

7 第五章 集成asynq

7.1 知识点

  1. asynq文档
  2. asynq介绍
  3. asynq具体讲解及示例
  4. asynq亲自实践
  5. go-zero中使用asynq

7.2 相关命令

8 第六章 分布式事务dtm

8.1 知识点

  1. 分布式事务dtm文档
  2. 分布式事务解决方案
  3. 分布式事务dtm官方示例
  4. go-zero使用dtm参考代码
  5. 使用dtm注意事项
  6. dtm详解

8.2 相关命令

9 第六章 第七章 运维部署(待编写)

9.1 知识点

9.2 相关命令

你可能感兴趣的:(go-zero,golang)