如果你接触过分布式系统的话,那么你一定接触过RPC,它是Remote Procedure Call的缩写,翻译过来的意思是远程过程调用,用通俗地语言来说就是允许一台计算机上的程序去执行另一台机器上的程序,而能够实现这种远程需求的就是RPC这种协议。而gRPC就是谷歌实现的一种RPC协议,因为它更快速,高效且安全,因此很多公司选择它作为RPC的实现。

诞生背景

在2000年之前,人们就已经有RPC调用的实现,当时人们采用的是REST来实现,但是这种效率非常低下,因此,在2016年,谷歌推出了免费开源的gRPC协议。

因为它的性能非常强,它的轻量级消息比json的消息传输性能提升了非常多。

此外,它还提供了非常方便的代码生成工具,你可以非常方便地生成各种语言对应的RPC代码。

gRPC的优点

就像我们之前说的一样,性能是最重要的因素,无论你是多么地好用,多么地方便,如果你的效率不够高,你是不能得到大部分人的认可的。而这也是c语言一直占据编程市场份额的主要语音,性能足够强大。

gRRC因为提供了自动生成工具,因此通过定义通用的proto文件,我们可以非常快速地构建代码,可以非常方便地生成各种语言对应的代码,非常适合多语言的团队项目。

gRPC是支持双向流的,这对于游戏应用来说有着巨大的作用,此外双向流也让消息传递变得非常方便。

gRPC是安全的,它支持TLS协议,它支持通过基于令牌的身份验证。可以通过通道进行调用,确保数据安全。

如何使用

谷歌提供了非常丰富详尽的文档,你可以找到你擅长的编程语言,然后通过简单的案例来开始学习。

你需要掌握的就是如何在proto文件中定义函数和消息体结构,然后通过运行grpc_tools,你就可以生成对应语言的RPC代码。

它的过程一般是下面这样的。

定义服务service定义rpc方法,指定请求类型,返回类型生成服务器端代码,生成客户端代码创建服务器,创建客户端总结

gRPC有着出色的效率,支持双向流,有着非常高的安全性,因此很多公司都开始采用gRPC作为远程调用的框架。

对于物联网,gRPC的出色性能将会发挥更大的作用。在万物互联的时代,你确定不学习一下gRPC吗?

标签: REST