前言
protoc
是 protobuf
文件(.proto)的编译器,可以借助这个工具把 .proto
文件转译成各种编程语言对应的源码,包含数据类型定义、调用接口等。
protoc
在设计上把 protobuf
和不同的语言解耦了,底层用 c++
来实现 protobuf
结构的存储,然后通过插件的形式来生成不同语言的源码。
可以把 protoc
的编译过程分成简单的两个步骤:
1)解析 .proto
文件,转译成 protobuf
的原生数据结构在内存中保存;
2)把 protobuf
相关的数据结构传递给相应语言的编译插件,由插件负责根据接收到的 protobuf
原生结构渲染输出特定语言的模板。
protoc-gen-go
是 protobuf
编译插件系列中的Go版本。
设置开启GO111MODULE、配置代理
-
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn/
安装 kratos
-
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest kratos upgrade go mod tidy # 更新依赖库
安装 protobuf 相关库
-
# 安装 proto go get -u github.com/golang/protobuf/proto # kratos升级到最新版 sudo kratos upgrade # 安装 protoc-gen-go-grpc go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest # 安装 protoc-gen-go-http go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2 go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2 # 安装 protoc-gen-go go get -u github.com/golang/protobuf/protoc-gen-go@latest go install github.com/golang/protobuf/protoc-gen-go@latest # 安装 protoc-gen-go-errors go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2 go install github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2 # 安装 protoc-gen-openapiv2 go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 # 安装 protoc-gen-validate go get -u github.com/envoyproxy/protoc-gen-validate go install github.com/envoyproxy/protoc-gen-validate
生成所有proto源码、wire等等,下面命令二选一
-
go generate ./... go run generate.go ./..
运行项目
kratos run
标签:依赖,kratos,com,github,protoc,go,安装,gen From: https://www.cnblogs.com/kylin5201314/p/18064676