本文共 1547 字,大约阅读时间需要 5 分钟。
1.什么是gRPC&ProtoBuffers
refrence:https://www.jianshu.com/p/9c947d98e192https://www.jianshu.com/p/b723053a86a6学习课程 UPS 软件工艺师1.gRPCgRPC官网:A high-performance, open-source universal RPC framework.gRPC是google的RPC,所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型.使用的时候客户端调用server端提供的接口就像是调用本地的函数一样.gPRC允许你为RPC(Remote Procedure Call)定义请求和相应,然后gRPC会帮处理一切剩余问题.它速度快,执行效率高,基于HTTP/2构建,低延迟,支持流,与开发语言无关,并且可以很简单地插入身份验证,负载均衡,日志和监控等功能.gPRC是对RPC一种非常简洁的实现并且解决了很多RPC问题.如何学习gRPC?首先得学习Protobuffers,简单来说,它可以定义消息和服务.然后你只需要实现服务即可,剩余的gRPC代码将会为你自动生成..proto这个文件可以适用于十几种开发语言(包括服务端与客户端),并且允许使用同一个框架来支持每秒百万级别上的RPC调用.2.ProtoBuffers2.1 Protobuf是什么Protobuf实际是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用.通信时所传递的信息是通过Protobuf定义的message数据结构进行打包,然后编译成二进制的码流再进行传输或者存储.2.2 Protobuf的优点相比较而言,Protobuf有如下优点:足够简单序列化后体积很小:消息大小只需要XML的1/10 ~ 1/3解析速度快:解析速度比XML快20 ~ 100倍多语言支持,可以生成所有主流开发语言的代码更好的兼容性,Protobuf设计的一个原则就是要能够很好的支持向下或向上兼容数据是二进制格式,串行化的效率高,PayLoad比较小适合传递大量的数据通过设置某些规则,使得API的进化也很简单.VSCode装插件:vscode-protoclang-formattag:icon-themepurple(换主题)安装LLVM:https://releases.llvm.org/download.htmlhttps://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe
2.proto文件的简单示例
D:\005-代码\003-Protobuffers
3.protobuffer的数据类型和字段说明
数值型:标量类型(1)数值型 数值型有很多种形式:double,float,int32,int64,uint32,uint64, sint32,sint64, fixed32,fixed64,sfixed32,sfixed64,根据需要选择对应的数值类型.(2)布尔型 bool型可以有True和False两个值.(3)字符串 string表示任意长度的文本,但是它必须包含的是UTF-8编码或7位ASCIl的文本,长度不可超过232.(4)字节型 bytes可表示任意的byte数组序列,但是长度也不可以超过232,最后是由你来决定如何解释这些 bytes,例如你可以使用这个类型来表示一个图片.
转载地址:http://cbqzk.baihongyu.com/