gRPC
Google遠(yuǎn)程過程調(diào)用(Google Remote Procedure Call,gRPC)協(xié)議是谷歌發(fā)布的高性能、通用的開源RPC軟件框架。gRPC提供了多種編程語言,同時(shí)gRPC也是對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置和管理的一種方法。
gRPC vs REST
REST(Representational State Transfer)表征狀態(tài)轉(zhuǎn)移,是一種軟件架構(gòu)風(fēng)格,同樣為管理和配置網(wǎng)絡(luò)設(shè)備提供了一種API接口設(shè)計(jì)的方法。gRPC與REST兩者的主要差異如下:
幾乎所有的瀏覽器都支持RSET,而支持gRPC的瀏覽器非常有限。這是REST相對(duì)于gRPC的主要優(yōu)勢(shì)。
REST遵循基于HTTP 1.1的請(qǐng)求-響應(yīng)通信模型,而gRPC遵循基于HTTP 2.0的客戶端-響應(yīng)通信模型。HTTP 2.0在速度上有著絕對(duì)的優(yōu)勢(shì)。
REST使用JSON或XML編碼格式承載數(shù)據(jù),而gRPC默認(rèn)使用ProtoBuf編碼格式承載數(shù)據(jù)。JSON或XML編碼格式以文本形式傳輸,而ProtoBuf是以二進(jìn)制數(shù)據(jù)進(jìn)行傳輸,所以在傳輸速率上gRPC更具有優(yōu)勢(shì)。
REST不提供內(nèi)置代碼生成功能,需要使用Swagger等工具生成API請(qǐng)求代碼。而gRPC具有protoc編譯器,具有代碼生成功能。
gRPC是如何工作的?
gRPC協(xié)議架構(gòu)
gRPC是一種用于實(shí)現(xiàn)RPC API的技術(shù)。由于gRPC是開源框架,通信雙方都基于該框架進(jìn)行二次開發(fā),無需關(guān)注由gRPC軟件框架實(shí)現(xiàn)的底層通信。
gRPC支持的操作設(shè)備在網(wǎng)絡(luò)架構(gòu)里支持Dial-in和Dial-out兩種對(duì)接模式。
Dial-in模式:設(shè)備作為gRPC服務(wù)器,采集器作為gRPC客戶端。由采集器主動(dòng)向設(shè)備發(fā)起gRPC連接并獲取需要采集的數(shù)據(jù)信息或下發(fā)配置。適用于小規(guī)模網(wǎng)絡(luò)。Dial-out模式:設(shè)備作為gRPC客戶端,采集器作為gRPC服務(wù)器。設(shè)備主動(dòng)和采集器建立gRPC連接,將設(shè)備上配置的訂閱數(shù)據(jù)推送給采集器。適用于網(wǎng)絡(luò)設(shè)備較多的情況下。
gRPC交互過程
gRPC采用客戶端和服務(wù)器模型,以網(wǎng)絡(luò)設(shè)備為gRPC客戶端,采集器為gRPC服務(wù)器為例。設(shè)備主動(dòng)和采集器建立gRPC連接,將設(shè)備上配置的訂閱數(shù)據(jù)推送給采集器。在整個(gè)gRPC交互的過程中,設(shè)備和采集器都需要使用ProtoBuf來定義Proto文件。
gRPC的應(yīng)用
gRPC支持通過Telemetry技術(shù)實(shí)現(xiàn)訂閱功能(Subscribe操作)。Telemetry是一項(xiàng)遠(yuǎn)程從物理設(shè)備或虛擬設(shè)備上高速采集數(shù)據(jù)的技術(shù)。設(shè)備通過推模式(Push Mode)周期性地主動(dòng)向采集器上送設(shè)備的接口流量統(tǒng)計(jì)、CPU和內(nèi)存數(shù)據(jù)等信息。
編輯:jq
-
IP
+關(guān)注
關(guān)注
5文章
1721瀏覽量
150006 -
XML
+關(guān)注
關(guān)注
0文章
188瀏覽量
33143 -
API
+關(guān)注
關(guān)注
2文章
1513瀏覽量
62431 -
瀏覽器
+關(guān)注
關(guān)注
1文章
1036瀏覽量
35544 -
REST
+關(guān)注
關(guān)注
0文章
33瀏覽量
9450
原文標(biāo)題:IP知識(shí)百科之可編程網(wǎng)絡(luò)系列:什么是gRPC
文章出處:【微信號(hào):huaweidoc,微信公眾號(hào):華為產(chǎn)品資料】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論