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
全部0条评论
快来发表一下你的评论吧 !