gRPC是什麼
gRPC是什麼可以用官網的一句話來概括:
A high-performance, open-source universal RPC framework
所謂RPC(remote procedure call 遠程過程調用)框架實際是提供了一套機制,使得應用程序之間可以進行通信,而且也遵從server/client模型。使用的時候客戶端調用server端提供的接口就像是調用本地的函數一樣。如下圖所示就是一個典型的RPC結構圖。
gRPC的優點
gRPC和restful API都提供了一套通信機制,用於server/client模型通信,而且它們都使用http作爲底層的傳輸協議(嚴格地說, gRPC使用的http2.0,而restful api則不一定)。不過gRPC還是有些特有的優勢,如下:
gRPC可以通過protobuf來定義接口,從而可以有更加嚴格的接口約束條件。
另外,通過protobuf可以將數據序列化爲二進制編碼,這會大幅減少需要傳輸的數據量,從而大幅提高性能。
gRPC可以方便地支持流式通信(理論上通過http2.0就可以使用streaming模式, 但是通常web服務的restful api似乎很少這麼用,通常的流式數據應用如視頻流,一般都會使用專門的協議如HLS,RTMP等,這些就不是我們通常web服務了,而是有專門的服務器應用。)
gRPC+K8S
gRPC目前是k8s生態裏的事實標準,而Kubernetes又是容器編排的事實標準。gRPC已經廣泛應用於Istio體系,包括:
Envoy與Pilot(現在叫istiod)間的XDS協議
mixer的handler擴展協議
MCP(控制面的配置分發協議)
在Cloud Native的潮流下,開放互通的需求必然會產生基於HTTP/2的RPC。即使沒有gRPC,也會有其它基於HTTP/2的RPC。一方面,通過gRPC接入擴展兼具了sdk與RESTful的優勢: 支持跨語言調用的同時支持友好安全的接入方式。另一方面,gRPC的stream特性雖然好多答主說用不上,但在服務治理的場景下是非常合適的。輕舟微服務框架就使用了gRPC stream實現心跳檢查、配置下發,ServiceMesh服務發現、路由規則的下發用的也是gRPC協議。在這些場景下,gRPC stream成爲了很常用的一種手段。
gPRC四天集訓
目前越來越多的開發崗位,特別是高薪崗位,已將熟悉gRPC作爲任職要求中的重要指標,然而,gRPC的學習資料,特別是視頻學習資料少之又少。這裏,推薦大家一門gRPC集訓課,課程由架構師Tony老師耗時10天匠心打造,四天的時間裏,Tony老師將從gRPC的使用、原理、優化、實戰逐一爲大家講解,讓大家真正對gRPC有全面的認識,課程爲期四天,4月6日~9日晚上八點至九點半直播教學,本號粉絲,一律免費學習。
微信掃碼加入集訓羣
請如掃碼失敗加微信號:ruanmou777
週一:gRPC-入門
1.1 grpc 介紹
1.2 grpc 微服務和Grpc如何演化
1.3 grpc 跨平臺應用(跨語言演示)
週二:gRPC-流式處理
1.1 什麼是流式處理
1.2 流式處理api介紹
1.3 流式處理應用場景
1.4 流式處理實現原理
週三:grpc-安全
1.1 什麼是grpc安全
1.2 grpc身份驗證和授權
1.3 grpc日誌記錄和診斷
週四:grpc-集羣與部署
1.1 什麼是grpc集羣
1.2 grpc如何實現集羣負載均衡
1.3 grpc如何部署
附贈額外福利一
福利1:送價值399元.NET Core視頻合集
福利2:送價值299元微服務視頻合集
福利3:送價值499元數據結構算法視頻合集
福利4:贈送價值199元Redis視頻合集
掃碼獲取以上福利
僅限前199名
微信掃碼加入集訓羣
請如掃碼失敗加微信號:ruanmou777
附贈額外福利二
集訓完畢後,學習羣裏抽獎活動
中獎者獲書一本