發表文章

目前顯示的是有「開發技術類-RPC-Web API 之外的新選擇」標籤的文章

自救必看三大準則

gRPC 服務 - 除了 Web API 之外的新選擇

圖片
  gRPC  全名叫 gRPC Remote Procedure Calls,是一個由 Google 開發的 RPC 框架,基於  HTTP/2  協定及  Protocol Buffers  序列化協定設計而成的,主打著高性能、跨平台、跨語言(這一點頗吸引我),我們可以將 gRPC Host 在 ASP.NET Core 上做為一個服務發佈出去。 什麼是 RPC? RPC 是 Remote Procedure Calls(遠端程序呼叫)的縮寫,顧名思義,就是去呼叫位於遠端主機上的一個程序,要完成這樣一件事情,標準的 RPC 架構需要四個元件: Client 、 Client Stub 、 Server 、 Server Stub ,其互動方式如下圖: 關於 RPC 更詳細的資訊,網路上已經有很多了,這個就請大家自行 Google 了。 gRPC 服務 RPC 的架構就如剛剛所描述的,至少需要一個 RPC 的 Server 提供服務,gRPC 也不例外,關於這點 gRPC 官網的  Tutorials  有各種程式語言的範例,可以一步一步地純手工打造,但是我們是寫 C# 的,微軟已經幫我們準備好 gRPC 服務的專案範本,直接拿來用就好了,我們打開 Visual Studio 2019(這邊使用的版本是 16.3.2),專案類型選擇「Web」,就可以看到  gRPC 服務 ,點擊下一步把專案建起來。 Protocol Buffers Protocol Buffers  是由 Google 所定義的一種資料格式,檔案的副檔名是  .proto ,很像 JSON 但不是 JSON,還記得剛剛所說的 RPC 架構的四個元件吧? gRPC 中的 Client Stub 及 Server Stub 就必須依賴 proto 檔來產生,可以把 proto 檔看成是 API 的定義檔,所以撰寫 gRPC 服務得先從 proto 檔下手。 我們使用的 Protocol Buffers 格式的版本是  proto3 , Google 的文件 也很清楚地告訴我們該怎麼撰寫,那我就不使用專案範本中 GreeterService 的範例,而是自己想一個範例,從無到有地建立起...