- 授权码 / 注册码 生成服务
- ✅ 依次启动中间件:
- mysql
- redis
- consul
- ✅ 启动 rpc server
- ✅ 启动 http server
- 注册码生成
- 注册码分配
- 注册码管理
- 启动依赖的 docker 中间件:
- ✅mysql
- ✅redis
- kafka
- ✅consul (etcd)
服务初始化:
- db 创建, 表生成
cd zeromall/
# db 初始化:
task license:key:init:db
服务代码生成:
cd learn-go/
# pb 新增api, 动态生成新的模板代码:
task try:zero:gen:pb
# 生成 model CRUD 代码
- etcd 没有 web ui, 使用不方便, 采用 consul 替代.
- consul docker 启动脚本: infra-kv-consul.yml
参考示例:
➤ lt -L 2
.
├── api // api 服务, 基于 proto/api/*.api 自动生成的代码
│ ├── api.go
│ ├── etc
│ └── internal
├── go.mod
├── go.sum
├── proto // 微服务定义部分, 包含各种服务定义源文件(api, rpc, sql)
│ ├── api // api 定义
│ ├── model // 基于 sql, 生成的 model CRUD 代码
│ ├── rpc // rpc 服务定义
│ └── sql // raw sql, 用于生成 model
├── readme.md
├── rpc // rpc 服务, 基于 proto/rpc/*.proto 自动生成的代码
│ ├── etc
│ ├── internal
│ ├── main.go
│ ├── pb
│ └── service
└── Taskfile.yml // 服务启动脚本
- run:
cd zeromall/
# go mod tidy:
task try:zero:tidy
# run api:
task try:zero:run:api
# run rpc:
task try:zero:run:rpc
- api 验证:
cd zeromall/
# api test:
task try:zero:api:test
- new:
goctl api new hello
- new:
goctl rpc new rpc
- 依赖服务发现机制, 默认基于 etcd 注册 / 发现服务。
文档:
- https://go-zero.dev/cn/docs/goctl/other
- https://go-zero.dev/cn/docs/goctl/api
- https://go-zero.dev/cn/docs/goctl/zrpc
- https://go-zero.dev/cn/docs/goctl/model
目录结构设计:
参考示例: