protobuf 注册RPC服务
protobuf学习
protobuf 安装
下载
方法一:===> git clone https://github.com/protocolbuffers/protobuf.git
方法二:===> 或者将准备好的压缩包进行拖入
解压到$GOPATH/src/github.com/protocolbuffers/下面
Unzip protobuf.zip
安装
(1)安装依赖工具(联网)
$ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y
(2)进入protobuf文件
cd protobuf/
(3)进行安装检测 并生成自动安装脚本
./autogen.sh
./configure
(4)进行编译C代码
make
(5)进行安装
sudo make install
(6)刷新linux共享库关系
sudo ldconfig
出现的问题,直 make 安装不了,要使用超级权限。并将install-sh设置
chomd 777 install-sh
测试是否安装成功
protoc -h 如果没有error证明没有什么问题
bug 使用终端测试没问题,但是在golang的终端里无法显示。
使用
出现了bug,报出错误信息 zsh: command not found: protoc
参考下文。
https://cnblogs.com/DI-DIAO/p/12588406.html
protobuf编译命令
protoc --go_out=./ *.proto
protoc-gen-go: unable to determine Go import path for "mypb.proto"
Please specify either:
• a "go_package" option in the .proto source file, or
• a "M" argument on the command line.
See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
--go_out: protoc-gen-go: Plugin failed with status code 1.
解决方法:主要原因是没有找到路径,所以需要在proto文件中设置路径参考下篇文章
https://blog.csdn.net/fujian9544/article/details/116809779
protobuf 注册rpc
service 服务名{
rpc 函数名(参数:消息体) returns(返回值:消息)
}
message Doing{
string name =1;
}
message Runing{
int32 milk =2;
}
例如:
service sayhello{
rpc SayHi(Doing) returns(Runing)
}
protobuf
知识点:
-
默认,protobuf,编译期间,不编译服务。想要使之编译。需要使用gPRC。
-
使用的编译指令为:
protoc --go_out=plugins=grpc:./ *.proto