-
Notifications
You must be signed in to change notification settings - Fork 58
setup development
henry.huang edited this page Mar 16, 2021
·
5 revisions
- 搭建本地开发环境:
- go 开发环境: 安装/配置
- docker 环境搭建: 安装
- protobuf 安装: 安装
brew install go
go get -u -v github.com/gogo/protobuf/protoc-gen-gofast
go get -u -v github.com/gogo/protobuf/proto
go get -u -v github.com/gogo/protobuf/jsonpb
go get -u -v github.com/gogo/protobuf/protoc-gen-gogo
go get -u -v github.com/gogo/protobuf/gogoproto
- 初始化项目
# clone repo:
git clone [email protected]:zeromicro/zeromall.git
# enter project root:
cd zeromall/
# install require pkg:
make go.mod.tidy
go mod tidy -v
- 开发环境配置 git-pre-commit-hook:
# 安装依赖工具:
brew install pre-commit
# 会自动添加 hook 文件到: .git/hooks/pre-commit
pre-commit install
- 用于 rpc 服务的服务发现
- https://github.com/zeromicro/zeromall/blob/main/deploy/local/infra-kv-etcd.sh
- 启动 docker 容器:
- 启动 docker 容器:
- 启动 docker 容器:
- 消息队列, 启动 docker 容器:
- https://github.com/zeromicro/zeromall/blob/main/deploy/local/infra-mq-rabbitmq.yml#L12
- 以
queue
服务为例:app/basic/queue/cmd/main.go
- 服务启动顺序:
-
inner server
: 内部 rpc 服务(grpc) -
outer server
: 对外 http api 服务 -
admin server
: 对内 admin http api 服务 -
job server
: 对内 job 服务(异步/定时任务)
-
- 先启动:
- 需要预先启动
etcd
docker 容器, 用于服务发现. - 其他3个服务, 默认可能会依赖 rpc server(inner) 启动.
- 系统管理后台 API
- 异步任务
- 定时任务: 支持 cronjob