1. protoc 编译器下载
protoc编译器负责将xxx.proto文件编译生成xxx.pb.go文件,其位github.com/protocolbuffers/protobuf库下。
到下面地址下载对应系统版本的protoc编译器。下载后解压文件,bin目录下添加protoc文件路径到系统环境变量。
https://github.com/protocolbuffers/protobuf/releases
2. protoc-gen-go
protoc-gen-go提供了protoc编译器生成go相关api的实现,其位github.com/golang/protobuf库下。
protobuf库是protocol buffers协议的golang语言版实现。protoc编译器编译时需依赖它。
go get github.com/golang/protobuf
3. protoc-gen-micro
protoc-gen-micro提供了protoc编译器生成go-micro相关api的实现,其位github.com/micro/micro库下。
地址:https://github.com/micro/micro/tree/master/cmd/protoc-gen-micro
注:go-micro v1版本需用如下方式下载protoc-gen-micro
go get github.com/micro/protoc-gen-micro
4. go-micro v1 (初始默认版本v1.18.0)
go get github.com/micro/go-micro
5. go-plugins 插件下载
go-micro v1 版本下载插件通过如下方式,其囊括了go-micro所需的相关插件到一个包。
go get github.com/micro/go-plugins
go-micro v2版本:因为go-micro v2后,去除了对consul 的支持(github.com/micro/go-micro/registry里面没有consul目录),但支持etcd、mdns作为服务发现。后面文章说道,需单独按需下载
6. 问题and代码
6.0 以上5步code归纳
protoc compiler:https://github.com/protocolbuffers/protobuf/releases
protoc-gen-go:go get github.com/golang/protobuf
protoc-gen-micro:go get github.com/micro/protoc-gen-micro
go get github.com/micro/go-micro
go get github.com/micro/go-plugins [插件v1版本一个包全囊括]
6.1 protoc生成go文件
完成以上步骤,通过如下命令我们可以得到xxx.pb.go和xxx.pb.micro.go两个文件
protoc --proto_path=. --micro_out=. --go_out=. xxx.proto
6.2 go run server.go 启动服务报错
#github.com/coreos/etcd/clientv3/balancer/picker
#github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
#github.com/micro/go-micro/transport/quic
//替换为v1.26.0版本的gRPC库
replace google.golang.org/grpc => google.golang.org/grpc v1.26.0
//go1.13版本存在的问题,目前项目为go1.14版本
replace github.com/lucas-clemente/quic-go => github.com/lucas-clemente/quic-go v0.14.1
go version: go1.14.7 windows/amd64
demo:https://gitee.com/ztind/golang-micro/tree/master/go-micro/demo_v1