溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Google開源的基于HTTP/2和ProtoBuf的通用RPC框架gRPC該如何理解

發(fā)布時(shí)間:2022-01-05 18:25:57 來源:億速云 閱讀:210 作者:柒染 欄目:云計(jì)算

Google開源的基于HTTP/2和ProtoBuf的通用RPC框架gRPC該如何理解,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

gRPC是一個(gè)高性能、通用的開源RPC框架,其由Google主要面向移動(dòng)應(yīng)用開發(fā)并基于HTTP/2協(xié)議標(biāo)準(zhǔn)而設(shè)計(jì),基于ProtoBuf(Protocol Buffers)序列化協(xié)議開發(fā),且支持眾多開發(fā)語言。gRPC提供了一種簡單的方法來精確地定義服務(wù)和為iOS、Android和后臺(tái)支持服務(wù)自動(dòng)生成可靠性很強(qiáng)的客戶端功能庫??蛻舳顺浞掷酶呒?jí)流和鏈接功能,從而有助于節(jié)省帶寬、降低的TCP鏈接次數(shù)、節(jié)省CPU使用、和電池壽命。

gRPC具有以下重要特征:

  • 強(qiáng)大的IDL特性
    gRPC使用ProtoBuf來定義服務(wù),ProtoBuf是由Google開發(fā)的一種數(shù)據(jù)序列化協(xié)議(類似于XML、JSON、hessian)。ProtoBuf能夠?qū)?shù)據(jù)進(jìn)行序列化,并廣泛應(yīng)用在數(shù)據(jù)存儲(chǔ)、通信協(xié)議等方面。不過,當(dāng)前gRPC僅支持 Protobuf ,且不支持在瀏覽器中使用。由于gRPC的設(shè)計(jì)能夠支持支持多種數(shù)據(jù)格式,所以讀者能夠很容易實(shí)現(xiàn)對(duì)其他數(shù)據(jù)格式(如XML、JSON等)的支持。

    定義服務(wù)的示例代碼如下:

    message HelloRequest {
      string greeting = 1;
    }
    message HelloResponse {
      string reply = 1;
    }
    service HelloService {
      rpc SayHello(HelloRequest) returns (HelloResponse);
    }
  • 支持多種語言
    gRPC支持多種語言,并能夠基于語言自動(dòng)生成客戶端和服務(wù)端功能庫。目前,在GitHub上已提供了C版本grpc、Java版本grpc-java 和 Go版本grpc-go,其它語言的版本正在積極開發(fā)中,其中 grpc支持C、C++、Node.js、Python、Ruby、Objective-C、PHP和C#等語言,grpc-java已經(jīng)支持Android開發(fā)。

  • 基于HTTP/2標(biāo)準(zhǔn)設(shè)計(jì)
    由于gRPC基于HTTP/2標(biāo)準(zhǔn)設(shè)計(jì),所以相對(duì)于其他RPC框架,gRPC帶來了更多強(qiáng)大功能,如雙向流、頭部壓縮、多復(fù)用請(qǐng)求等。這些功能給移動(dòng)設(shè)備帶來重大益處,如節(jié)省帶寬、降低TCP鏈接次數(shù)、節(jié)省CPU使用和延長電池壽命等。同時(shí),gRPC還能夠提高了云端服務(wù)和Web應(yīng)用的性能。gRPC既能夠在客戶端應(yīng)用,也能夠在服務(wù)器端應(yīng)用,從而以透明的方式實(shí)現(xiàn)客戶端和服務(wù)器端的通信和簡化通信系統(tǒng)的構(gòu)建。

gRPC已經(jīng)應(yīng)用在Google的云服務(wù)和對(duì)外提供的API中,其主要應(yīng)用場景如下:

  • 低延遲、高擴(kuò)展性、分布式的系統(tǒng)

  • 云服務(wù)器進(jìn)行通信的移動(dòng)應(yīng)用客戶端

  • 設(shè)計(jì)語言獨(dú)立、高效、精確的新協(xié)議

  • 便于各方面擴(kuò)展的分層設(shè)計(jì),如認(rèn)證、負(fù)載均衡、日志記錄、監(jiān)控等

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI