gRPC and Protocol Buffers

JSON作为消息类型。JSON和Rest的关键点是它并不是很高性能,也没有大量的优化。

要用很大量的步骤构建客户端,做集成。

Google提出了一种新的方法称为gRPC,背后的意图是你仍然使用标准的协议。

在这个情况下是使用Http2,不是Http。

但是并不是使用Json,你将使用的是一个基于二进制的称为prrotobufs。

因为是基于二进制的,显然更快序列化的。

最终定义prototype,任何人可以生成客户端基于。

在proto文件中service,为service定义方法。也为方法定义message。

一个service定义看起来像这样。

当你为protobufs中在service中定义一个方法时。

message

需要指明message中的位置。这是重要的如果你想要向后兼容性,所以我可以添加新的域到message里并且维护向后兼容性,但是不能够改变索引并且维护向后兼容性。

已经指明了是一个基于rpc的service。

protobuf有自己的类型,因为protobuf被设计为独立于你的相关语言。

所以我在go中定义protobuf,它应该与在Javascript上工作相同,或者是Java,Ruby,Python。

你将最终得到二进制,序列化的格式。

Json被编码为string,protobufs被编码为二进制。编码成二进制的协议。

我们已经定义了service,需要从protobuf中生成一些go代码。

使用一些工具,使用的工具是

protoc命令基于一个proto文件为特定的语言生成代码文件。

它接受proto文件,生成go,java,c#,ruby,objective。

对于gRPC,使用插件。需要安装gRPC插件,它是一个go包。

gRPC由google维护。

gRPC是一个使用protocol buffer作为消息的框架。

我们将把它作为构建过程的一部分当改变了proto文件时。

开始生成Go结构体基于proto buffer定义。代码生成创建了struct。

用protobuf有能力序列化它到json,这对于二进制和基于文本的协议的转换非常有用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值