本篇概覽本文《gRPC學習》系列的第四篇,前文咱們體驗了最簡單的gRPC開發,編寫客戶端呼叫服務端,但這只是最簡單的一種,在解決實際問題時是遠遠不夠的;實際上,gRPC允許你定義以下四類服務方法(以下描述來自http://doc.oschina.net/grpc):單項 RPC,即客戶端傳送一個請求給服務端,從服務端獲取一個應答,就像一次普通的函式呼叫(前一篇文章就是此類);服務端流式 RPC,即客戶端傳送一個請求給服務端,可獲取一個數據流用來讀取一系列訊息。客戶端從返回的資料流裡一直讀取直到沒有更多訊息為止;客戶端流式 RPC,即客戶端用提供的一個數據流寫入併發送一系列訊息給服務端。一旦客戶端完成訊息寫入,就等待服務端讀取這些訊息並返回應答;雙向流式 RPC,即兩邊都可以分別透過一個讀寫資料流來發送一系列訊息。這兩個資料流操作是相互獨立的,所以客戶端和服務端能按其希望的任意順序讀寫,例如:服務端可以在寫應答前等待所有的客戶端訊息,或者它可以先讀一個訊息再寫一個訊息,或者是讀寫相結合的其他方式。每個資料流裡訊息的順序會被保持。本篇的內容,就是編碼實現上述四類服務方法,並編寫客戶端程式碼呼叫,整個開發流程如下圖所示:原始碼下載如果您不想編碼,可以在GitHub下載所有原始碼,地址和連結資訊如下表所示:這個git專案中有多個資料夾,本章的應用在go-source資料夾下,如下圖紅框所示:go-source裡面有多個子資料夾,本篇的原始碼在grpcstream中,如下圖紅框:
最新評論