关于go和grpc和proto一些概念记录,使用方式

grpc的go部分需要安装三个可执行文件:

protoc-gen-go

github:https://github.com/protocolbuffers/protobuf-go

安装:go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28

或者下载发布版本 releases

 

protoc-gen-go-grpc

github:https://github.com/grpc/grpc-go

安装:go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2

或者

目前在github上,还没有提供release版本,需要自己根据源码生成
参考:window 安装protoc protoc-gen-go-grpc_grpc-go源码剖析与实战 图文专栏的博客-CSDN博客_protoc-gen-go-grpc

 

protoc

github:https://github.com/protocolbuffers/protobuf

安装:直接下载releases

 

 

指令参考:protoc --proto_path=./proto --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative service.proto

 或者protoc --proto_path=./proto --proto_path=%GOPATH%\src --go_out=./ --go_opt=paths=source_relative --go-grpc_out=./ --go-grpc_opt=paths=source_relative service.proto

关于proto文件:

option go_package="demo1/test/main;pb"; //表示目录demo1/test/main下生成go文件,包名为pb
如果不指定pb,则默认报名main

如果protoc 指令指定paths=source_relative,那么不会根据go_package目录来生成,会根据source_relative:./test22 (生成到test22目录下) 的路径来生成

 

更新,关于import引入问题

goland默认无法识别到自己写得proto文件,导入得时候爆红,没有提示,可以试下如下操作:

 

如果是再gomod环境下生成go文件注意一点,protoc执行生成命令如果想根据go_package 正常得生成到根包得目录下,可以选择在项目外得一层目录执行命令

 

 grpc_demo下面是所有得实际项目目录,demo1在grpc_demo下,并且demo1是module名称

posted @ 2022-05-07 18:26  叨叨的蜗牛  阅读(196)  评论(0)    收藏  举报