ProtoBuf
是什么?
ProtoBuf
是一套接口描述语言(IDL),通俗的讲是一种数据表达方式,也可以称为数据交换格式。
我们常用的数据格式有 JSON
和 XML
,为什么使用 ProtoBuf
?是因为它的传输快,为什么传输快?大家可以找下资料。使用 .proto
文件进行描述要序列化的数据结构,然后将写好 .proto
文件使用 protoc
就可以很容易编译成众多计算机语言的接口代码。
gRPC
是什么?
gRPC
是开源的 RPC
框架,已支持主流的计算机语言,可以通过 ProtoBuf
进行定义接口,可以基于 ProtoBuf
进行数据传输。
两者虽然是一家,但是分别解决不同的问题,可以配合使用,也可以分开。
看一下的 gRPC
helloworld 的 proto
文件是如何定义的?
helloworld.proto
syntax = "proto3";
package helloworld;
option go_package = "./;helloworld";
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
文件中定义了一个 service
Greeter 和 rpc
SayHello 方法。
入参: string
name
出参: string
message
这些过于简单,还能不能描述其他信息?
小思考
以上问题还未完全解决,学习 gRPC 感觉有些吃力…
推荐阅读
Original: https://www.cnblogs.com/xinliangcoder/p/15615075.html
Author: 新亮笔记
Title: Golang – 关于 proto 文件的一点小思考
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516510/
转载文章受原作者版权保护。转载请注明原作者出处!