gRPC 介紹及簡單使用
gRPC 官方文件中文版:http://doc.oschina.net/grpc?t=56831
gRPC 是什麼?
在 gRPC 裡客戶端應用可以像呼叫本地物件一樣直接呼叫另一臺不同的機器上服務端應用的方法,使得您能夠更容易地建立分散式應用和服務。與許多 RPC 系統類似,gRPC 也是基於以下理念:定義一個服務,指定其能夠被遠端呼叫的方法(包含引數和返回型別)。在服務端實現這個介面,並執行一個 gRPC 伺服器來處理客戶端呼叫。在客戶端擁有一個存根能夠像服務端一樣的方法。
gRPC 客戶端和服務端可以在多種環境中執行和互動 - 從 google 內部的伺服器到你自己的筆記本,並且可以用任何 gRPC
使用 protocol buffers
gRPC 預設使用 protocol buffers,這是 Google 開源的一套成熟的結構資料序列化機制(當然也可以使用其他資料格式如 JSON)。正如你將在下方例子裡所看到的,你用 proto files 建立 gRPC 服務,用 protocol buffers 訊息型別來定義方法引數和返回型別。你可以在
Protocol buffers 版本
儘管 protocol buffers 對於開源使用者來說已經存在了一段時間,例子內使用的卻一種名叫 proto3 的新風格的 protocol buffers,它擁有輕量簡化的語法、一些有用的新功能,並且支援更多新語言。當前針對 Java 和 C++ 釋出了 beta 版本,針對 JavaNano(即 Android Java)釋出 alpha 版本,在protocol buffers Github 原始碼庫裡有 Ruby 支援, 在golang/protobuf Github 原始碼庫
你好 gRPC!
現在你已經對 gRPC 有所瞭解,瞭解其工作機制最簡單的方法是看一個簡單的例子。 Hello World 將帶領你建立一個簡單的客戶端——服務端應用,向你展示:
- 通過一個 protocol buffers 模式,定義一個簡單的帶有 Hello World 方法的 RPC 服務。
- 用你最喜歡的語言(如果可用的話)來建立一個實現了這個介面的服務端。
- 用你最喜歡的(或者其他你願意的)語言來訪問你的服務端。
這個例子完整的程式碼在我們 GitHub 原始碼庫的 examples
目錄下。我們使用 Git 版本系統來進行原始碼管理,但是除了如何安裝和執行一些 Git 命令外,你沒必要知道其他關於 Git 的任何事情。需要注意的是,並不是所有 gRPC 支援的語言都可以編寫我們例子的服務端程式碼,比如 PHP 和 Objective-C 僅支援建立客戶端。比起針對於特定語言的複雜教程,這更像是一個介紹性的例子。你可以在本站找到更有深度的教程,gRPC 支援的語言的參考文件很快就會全部開放。
例項參考:https://blog.csdn.net/linuxarmsummary/article/details/79467412