gRPC&ProtoBuffers

1.什么是gRPC&ProtoBuffers


refrence:
https://www.jianshu.com/p/9c947d98e192
https://www.jianshu.com/p/b723053a86a6
学习课程 UPS 软件工艺师



1.gRPC
gRPC官网: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.ProtoBuffers
2.1 Protobuf是什么
Protobuf实际是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用.通信时所传递的信息是通过Protobuf定义的message数据结构进行打包,然后编译成二进制的码流再进行传输或者存储.

2.2 Protobuf的优点
相比较而言,Protobuf有如下优点:
足够简单
序列化后体积很小:消息大小只需要XML的1/10 ~ 1/3
解析速度快:解析速度比XML快20 ~ 100倍
多语言支持,可以生成所有主流开发语言的代码
更好的兼容性,Protobuf设计的一个原则就是要能够很好的支持向下或向上兼容
数据是二进制格式,串行化的效率高,PayLoad比较小
适合传递大量的数据
通过设置某些规则,使得API的进化也很简单.





VSCode装插件:
vscode-proto
clang-format
tag:icon-theme
purple(换主题)
安装LLVM:
https://releases.llvm.org/download.html
https://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,例如你可以使用这个类型来表示一个图片.


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值