gRPC
Google遠(yuǎn)程過(guò)程調(diào)用(Google Remote Procedure Call,gRPC)協(xié)議是谷歌發(fā)布的高性能、通用的開源RPC軟件框架。gRPC提供了多種編程語(yǔ)言,同時(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ā),無(wú)需關(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交互過(guò)程
gRPC采用客戶端和服務(wù)器模型,以網(wǎng)絡(luò)設(shè)備為gRPC客戶端,采集器為gRPC服務(wù)器為例。設(shè)備主動(dòng)和采集器建立gRPC連接,將設(shè)備上配置的訂閱數(shù)據(jù)推送給采集器。在整個(gè)gRPC交互的過(guò)程中,設(shè)備和采集器都需要使用ProtoBuf來(lái)定義Proto文件。
gRPC的應(yīng)用
gRPC支持通過(guò)Telemetry技術(shù)實(shí)現(xiàn)訂閱功能(Subscribe操作)。Telemetry是一項(xiàng)遠(yuǎn)程從物理設(shè)備或虛擬設(shè)備上高速采集數(shù)據(jù)的技術(shù)。設(shè)備通過(guò)推模式(Push Mode)周期性地主動(dòng)向采集器上送設(shè)備的接口流量統(tǒng)計(jì)、CPU和內(nèi)存數(shù)據(jù)等信息。
編輯:jq
-
IP
+關(guān)注
關(guān)注
5文章
1771瀏覽量
151183 -
XML
+關(guān)注
關(guān)注
0文章
188瀏覽量
33525 -
API
+關(guān)注
關(guān)注
2文章
1558瀏覽量
63437 -
瀏覽器
+關(guān)注
關(guān)注
1文章
1040瀏覽量
36040 -
REST
+關(guān)注
關(guān)注
0文章
33瀏覽量
9578
原文標(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)先 登錄
電子電路百科全書
百度百科啟動(dòng)“繁星計(jì)劃”
硬件工程師入門的基礎(chǔ)元器件知識(shí)

凌科獲授基于ISO56005的《創(chuàng)新與知識(shí)產(chǎn)權(quán)管理能力》證書

半導(dǎo)體術(shù)語(yǔ)小百科

鴻蒙智行再迎OTA升級(jí),車載小藝化身私人用車顧問、百科導(dǎo)師

名單公布!【書籍評(píng)測(cè)活動(dòng)NO.49】大模型啟示錄:一本AI應(yīng)用百科全書
機(jī)房監(jiān)控,機(jī)房監(jiān)控系統(tǒng)百科
機(jī)房監(jiān)控,機(jī)房監(jiān)控百科
半導(dǎo)體知識(shí)百科:不可不知的50大專業(yè)名詞


芯片行業(yè)說(shuō)的IP,是什么?

鹽霧試驗(yàn)箱的百科介紹


評(píng)論