使用 Go Micro 需要安装 proto 编译工具、micro 命令工具以及依赖包。
本文的 Go语言 使用了 1.13 版本,如果使用更高的 Go 语言版本,那么生成的框架代码会略有不同。
Go 语言安装可以参考 Go语言开发环境安装 。
1. 安装 protobuf 依赖包
go get github.com/golang/protobuf/proto
开发 grpc 服务和生成 proto 编译器的必须的依赖包。
2. 安装 protoc-gen-go
go get github.com/golang/protobuf/protoc-gen-go
生成的 protoc-gen-go 程序用于将 proto 文件编译为 go 语言程序。
3. 安装 protoc-gen-micro
go get github.com/micro/protoc-gen-micro
生成的 protoc-gen-micro 程序用于将 proto 文件编译为 go micro 使用的 go 语言代码。
4. 安装 micro
go get github.com/micro/micro
生成的 micro 程序是 go micro 的命令行工具 。
5. 安装 protoc
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.0.2/protoc-3.0.2-linux-x86_64.zip
tar zxvf protoc-3.0.2-linux-x86_64.zip
将解压后 bin 目录的 portoc 移动到 $GOPATH/bin 目录里,protoc 是 google protobuffer 标准的 proto 文件编译器。
经过以上步骤,在 $GOPATH/bin 目录里会产生以下文件:
micro
protoc
protoc-gen-go
protoc-gen-micro
6. 生成 Go Micro 项目
生成一个 grpc 服务 hello,运行以下命令:
micro new hello
进入项目目录 hello,目录结构如下:
. ├── main.go ├── generate.go ├── plugin.go ├── handler │ └── hello.go ├── subscriber │ └── hello.go ├── proto/hello │ └── hello.proto ├── Dockerfile ├── Makefile └── README.md
7. 使用 Go Mod 管理依赖包
进入项目目录 hello,运行 go mod 初始化命令:
go mod init hello
项目中多了一个 go.mod 文件。
8. 修改 proto 文件
进入项目的 proto 目录,里面有一个 c 文件。
编辑 hello.proto 文件,在 package 下增加 go package 路径:
syntax = "proto3"; package go.micro.srv.hello; option go_package="proto/hello"; service Hello { ......
9. 编译运行
在项目目录中运行 make build 命令:
make build
编译生成 hello-srv。运行 hello-srv:
./hello-srv
Go Micro 是一个插件化的 RPC 开发框架,用于使用 Go 语言快速构建微服务。Go Micro 的路由可以直接使用集成的 Go语言 默认的路由组件 net/http,也可以使用第三方路由库,比如功能 ...