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

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

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 相关命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
go-zero是一个开源的Go语言框架,它在构建微服务和高并发应用方面具有突破性的优势。其中一个突出的特点就是它整合了masterminds/squirrel,从而实现了优雅的多数据库支持。 masterminds/squirrel是一个流行的SQL查询构建器,它以非常直观和灵活的方式提供了编写SQL查询的功能。而go-zero在此基础上做了进一步的封装和优化,使得使用者能够更加方便地编写和执行SQL查询。 首先,go-zero提供了一组简洁而强大的API,使得构建SQL查询非常容易。开发者只需要按照一定的约定来创建查询参数和条件,然后使用go-zero提供的API来构建查询语句,即可完成复杂的SQL查询。 其次,go-zero还增加了一些高级功能,进一步提升了多数据库查询的灵活性和性能。例如,它支持数据库连接池管理,可以动态调整数据库连接数以适应并发请求;还支持分表分库功能,可以按照一定的规则将数据分散存储在不同的数据库或表中,从而提高查询效率。 最重要的是,go-zero通过内置的代码生成工具,提供了自动化生成数据库访问代码的能力。开发者只需要定义数据表的结构,然后运行代码生成工具,就能够自动生成包含增删改查等一系列数据库操作的代码。这极大地提高了开发效率,减少了出错的机会。 综上所述,go-zero整合了masterminds/squirrel,通过提供简洁强大的API、高级功能和自动化代码生成工具,实现了优雅的多数据库支持。它在微服务和高并发应用场景下的表现突出,为开发者提供了极大的便利和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值