天天看点

go-micro v1版本

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

继续阅读