gRPC學習記錄(一)--概念性知識

bluetooth發表於2021-09-09

前幾天剛發了,現在正好遇到了要學習的東西,因為重新找了工作,所以新公司使用的技術需要自己快速上手,那麼快速學習就是必須掌握的一門技能了.下面根據之前的博文展示如何快速入門一門新技術.(本篇很多內容都摘抄自網路)

1.gRPC是什麼?

搜尋百科部落格之類的可以檢視到很多資料.


圖片描述

Paste_Image.png

gRPC 是一個高效能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計,基於protobuf 3.x,基於Netty 4.x +。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go. 其中 C 版本支援 C, C++, Node.js,Python, Ruby, Objective-C,PHP和C#支援.gRPC基於HTTP/2標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連線上的多複用請求等特。這些特性使得其在移動裝置上表現更好,更省電和節省空間佔用。

gRPC基於定義服務的思想,定義可以遠端呼叫的方法,包括方法的引數和返回型別。在伺服器端,伺服器實現此介面並執行一個gRPC伺服器來處理客戶端呼叫。在客戶端,客戶端有一個“存根stub”(簡稱為某些語言的客戶端),提供與伺服器相同的方法。所有的資料傳輸都使用protobuf。

關鍵詞: RPC HTTP/2  protobuf 3.x Netty 4.x (記錄關鍵詞,這些可能是需要你自己額外補充的知識)

gRPC有幾個優點:

  • 在服務定義方面很簡單,可以很輕鬆地搭建出一個RPC的排程或者是P2P相互之間排程的框架。

  • gRPC是語言無關、平臺無關的,它有很多種不同的實現。如果寫好一個Protobuf協議定義,可以輕鬆地去生成不同語言的協議框架。

  • 它支援雙向的流的呼叫,在做一個分散式系統或者是相互呼叫的系統時.

2.同類技術有哪些?

這些搜一下作為了解知識.

3.gRPC解決的是什麼問題?

這個問題可以理解為RPC解決了什麼問題,gRPC在此基礎上做了哪些便捷最佳化?
RPC 的主要目的是為元件提供一種相互通訊的 方式,使這些元件之間能夠相互發出請求並傳遞這些請求的結果。
gRPC客戶端應用程式可以就像呼叫本地物件方法一樣直接呼叫不同伺服器上的應用程式方法,使您更容易建立分散式應用程式和服務。

參考:

4.在這之前都是怎麼解決這些問題的?

這個還真不清楚,可能是http介面吧

5.gRPC的組成部分

<dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-netty</artifactId>
  <version>1.0.3</version></dependency><dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-protobuf</artifactId>
  <version>1.0.3</version></dependency><dependency>
  <groupId>io.grpc</groupId>
  <artifactId>grpc-stub</artifactId>
  <version>1.0.3</version></dependency>

這一步主要是對整個技術的瞭解,不需要很深入,我現在對這個東西還是不懂,只知道他能幫我的A專案呼叫B服務的介面.下一步就是入門的Hello world了.



作者:此博廢棄_更新在個人部落格
連結:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3402/viewspace-2820541/,如需轉載,請註明出處,否則將追究法律責任。

相關文章