定義:(Google Remote PRocedure Protocol)谷歌遠程過程調用,根據官方文檔對grpc的介紹,grpc可以讓客戶端程序直接調用服務端不同主機上應用的方法,就像調用本地方法一樣,方便我們創建分布式應用和服務
在gRPC里客戶端應用可以像調用本地對象一樣直接調用另一臺不同的機器上服務端應用的方法,使得您能夠更容易地創建分布式應用和服務。與許多RPC系統類似,gRPC也是基于以下理念:定義一個服務,指定其能夠被遠程調用的方法(包含參數和返回類型)。在服務端實現這個接口,并運行一個gRPC服務器來處理客戶端調用。在客戶端擁有一個存根能夠像服務端一樣的方法。
gRPC客戶端可以再多種環境中運行與交互- 從Google內部的服務器到自己的筆記本,并且可以用任何gRPC支持的語言來編寫。所以,你可以很容易地用java創建一個gRPC服務端,用Go、Python、Ruby來創建客戶端。此外,Google最新API將有gRPC版本的接口,使你很容易地將Google的功能集成到你的應用里。
gRPC默認使用protocol buffers,這是google開源的一套成熟的數據結構序列化機制(當然也可以使用其他數據格式如JSON)。正如你將在下方例子里所看到的,你用protocolfiles創建gRPC服務,用protocol buffers消息類型來定義方法參數和返回類型
總結:gRPC是一個高性能、通用的開源RPC框架,其由Google主要面向移動開發并基于HTTP/2協議標準而設計,基于protoBuf(Protocol Buffers)序列化協議開發,且支持眾多開發語言。gRPC提供了一種簡單的方法來精確地定義服務為iOS、Android和后臺支持服務自動生成可靠性很強的客戶端功能庫??蛻舳顺浞掷酶呒壛骱瓦B接功能,從而有助于節省寬帶、降低TCP鏈接次數、節省CPU使用和電池壽命。
由于gRPC基于HTTP/2標準設計,所以相對于其他RPC框架,gRPC帶來了更多強大功能,如雙向流、頭部壓縮、多復用請求等。這些功能給移動設備帶來重大益處,如節省帶寬、降低TCP連接次數、節省CPU使用和延長電池壽命等。同時,gRPC還能夠提高了云端服務和Web應用的性能。gRPC既能夠在客戶端應用,也能夠在服務端應用,從而以透明的方式實現客戶端和服務端的通信和簡化通信系統的構建。
gRPC已經應用在Google的云服務和對外提供的API中,其主要應用場景如下: 低延遲、高擴展性、分布式的系統;同云服務器進行通信的移動應用客戶端;設計在語言獨立、高效、精確地新協議;便于各方面擴展的分層設計;如認證、負載均衡、日志記錄、監控等。
客戶端充分利用高級流和鏈接功能,從而有助于節省寬帶、降低TCP的連接次數、節省CPU的使用和電池壽命。
新聞熱點
疑難解答