IP知识百科之什么是gRPC

描述

gRPC

Google远程过程调用(Google Remote Procedure Call,gRPC)协议是谷歌发布的高性能、通用的开源RPC软件框架。gRPC提供了多种编程语言,同时gRPC也是对网络设备进行配置和管理的一种方法。

gRPC vs REST

REST(Representational State Transfer)表征状态转移,是一种软件架构风格,同样为管理和配置网络设备提供了一种API接口设计的方法。gRPC与REST两者的主要差异如下:

几乎所有的浏览器都支持RSET,而支持gRPC的浏览器非常有限。这是REST相对于gRPC的主要优势。

REST遵循基于HTTP 1.1的请求-响应通信模型,而gRPC遵循基于HTTP 2.0的客户端-响应通信模型。HTTP 2.0在速度上有着绝对的优势。

REST使用JSON或XML编码格式承载数据,而gRPC默认使用ProtoBuf编码格式承载数据。JSON或XML编码格式以文本形式传输,而ProtoBuf是以二进制数据进行传输,所以在传输速率上gRPC更具有优势。

REST不提供内置代码生成功能,需要使用Swagger等工具生成API请求代码。而gRPC具有protoc编译器,具有代码生成功能。

gRPC是如何工作的?

gRPC协议架构

gRPC是一种用于实现RPC API的技术。由于gRPC是开源框架,通信双方都基于该框架进行二次开发,无需关注由gRPC软件框架实现的底层通信。

gRPC支持的操作设备在网络架构里支持Dial-in和Dial-out两种对接模式。

Dial-in模式:设备作为gRPC服务器,采集器作为gRPC客户端。由采集器主动向设备发起gRPC连接并获取需要采集的数据信息或下发配置。适用于小规模网络。Dial-out模式:设备作为gRPC客户端,采集器作为gRPC服务器。设备主动和采集器建立gRPC连接,将设备上配置的订阅数据推送给采集器。适用于网络设备较多的情况下。

gRPC交互过程

gRPC采用客户端和服务器模型,以网络设备为gRPC客户端,采集器为gRPC服务器为例。设备主动和采集器建立gRPC连接,将设备上配置的订阅数据推送给采集器。在整个gRPC交互的过程中,设备和采集器都需要使用ProtoBuf来定义Proto文件。

gRPC的应用

gRPC支持通过Telemetry技术实现订阅功能(Subscribe操作)。Telemetry是一项远程从物理设备或虚拟设备上高速采集数据的技术。设备通过推模式(Push Mode)周期性地主动向采集器上送设备的接口流量统计、CPU和内存数据等信息。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分