go-zero 7 months ago
config
准备工作
安装 etcd, mysql, redis
暂时省略
安装 goctl 工具
GOPROXY=https://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl@latest
安装protoc, protoc-gen-go
goctl env install --verbose --force
常见命令
api操作:
# 创建API
goctl api -o xx.api
#由api生成API Gateway 代码
goctl api go -api shorturl.api -dir .
# 执行 go mod tidy 整理依赖
# 启动 API Gateway 服务,默认侦听在 8888 端口
go run shorturl.go -f etc/shorturl-api.yaml
rpc操作:
# 创建proto 文件
goctl rpc -o xx.proto
# 通过命令生成 proto 文件模板
goctl rpc -o xx.proto
# 生成 rpc 代码
goctl rpc protoc xx.proto --go_out=. --go-grpc_out=. --zrpc_out=.
# 启动 rpc 服务
go run xx.go -f etc/xx.yaml
# 服务发现
ETCDCTL_API=3 etcdctl get xx.rpc --prefix
CRUD+cache
:
在rpc/xx/model
目录下编写创建 shorturl 表的 sql 文件 shorturl.sql,如下:
CREATE TABLE `shorturl`
(
`shorten` varchar(255) NOT NULL COMMENT 'shorten key',
`url` varchar(255) NOT NULL COMMENT 'original url',
PRIMARY KEY(`shorten`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
接着 mysql-server
的 某个 数据库下新增如上表结构:
在 rpc/xx/model
目录下执行如下命令生成 CRUD+cache
代码,-c
表示使用 redis cache
goctl model mysql ddl -c -src shorturl.sql -dir .