构建工具
我们提供一套工具帮助开发者快速构建微服务。
安装
使用 go install 安装
go install github.com/vine-io/vine/cmd/vine@latest
编译包安装 (推荐)
bash -c "$(curl -fsSL https://raw.github.com/vine-io/vine/master/tools/install.sh)"
windows 平台直接去 release 下载
工具使用
vine --version
> vine version v1.5.0-5a39306c-1676942884
新建项目
创建目录作为项目根目录
mkdir -p $GOPATH/src/foo
初始化目录
cd $GOPATH/src/foo
vine init
vine init [--cluster]
会初始化 Vine 项目,生成以下文件
.
├── vine.toml # vine 项目的描述文件,包括项目名称,服务接口和proto等信息。
├── README.md
├── .gitignore
└── go.mod
新建服务
在初始化的目录新建微服务:
vine new service foo
vine 项目类型为 single 时,
vine new service
指定服务名称是无效的,它的名称等于目录名。
执行结果,生成以下文档:
.
├── cmd
│ └── echo
│ └── main.go
├── pkg
│ ├── internal
│ │ ├── storage
│ │ │ └── storage.go
│ │ └── version
│ │ └── version.go
│ └── echo
│ ├── app.go
│ ├── builtin.go
│ ├── server
│ │ └── echo.go
│ └── service
│ └── echo.go
├── deploy
│ ├── docker
│ │ └── echo
│ │ └── Dockerfile
│ ├── config
│ │ └── echo.ini
│ └── systemd
│ └── echo.service
├── api
│ └── services
│ └── echo
│ └── v1
│ └── echo.proto
├── Makefile
└── vine.toml
download protoc zip packages (protoc-$VERSION-$PLATFORM.zip) and install:
visit https://github.com/protocolbuffers/protobuf/releases
download protobuf for vine:
cd github.com/lack-io/foo
install dependencies:
go get github.com/gogo/protobuf
go get github.com/vine-io/vine/cmd/protoc-gen-gogo
go get github.com/vine-io/vine/cmd/protoc-gen-vine
go get github.com/vine-io/vine/cmd/protoc-gen-validator
go get github.com/vine-io/vine/cmd/protoc-gen-deepcopy
go get github.com/vine-io/vine/cmd/protoc-gen-dao
cd github.com/lack-io/foo
vine build echo
安装依赖
go get github.com/gogo/protobuf
go get github.com/vine-io/vine/cmd/protoc-gen-gogo
go get github.com/vine-io/vine/cmd/protoc-gen-vine
go get github.com/vine-io/vine/cmd/protoc-gen-validator
go get github.com/vine-io/vine/cmd/protoc-gen-deepcopy
go get github.com/vine-io/vine/cmd/protoc-gen-dao
更加 proto 文件生成 go 代码
使用命令格式为: vine build proto [command options] [proto_name]
# 生成 vine.toml 中所有 proto 文件对应的代码。
vine new proto
支持如下参数:
- –type string 指定 proto 文件的类型,支持 api 和 service,默认 api
- –proto-version string, -v string 指定 proto 文件版本,默认 v1
- –group string 指定 proto 文件分组,默认 core
- –dir string 执行 protoc 命令是所在的目录,chroot
- –path strings, -I strings protoc -I 路径
- –plugins strings, -P strings 生成 proto 时装载的插件
运行服务
命令格式: vine new [command options] [name]
vine run foo
支持如下参数:
- --auto-restart 监听文件变化时重启服务
- --watch strings 追加监听的路径
- --watch-interval int64, -I int64 监听事件触发间隔,默认3s
启动 api 网关
命令格式: vine api [command options]
vine api --handler=rpc --enable-openapi
最后修改 February 21, 2023: vine@v1.5 (cd019cf)