Scott

go-zero 7 months ago

微服务
1464个字符
共有99人围观

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 .