gRPC入門學習之旅(二)

    gRPC入門學習之旅(一)

     gRPC是一個高性能、通用的開源遠程過程調用(RPC)框架,基於底層HTTP/2協議標準協議層Protobuf序列化協議開發,支持衆多的開發語言,由Google開源。

     gRPC也是基於以下理念:定義一個服務,指定其能夠被遠程調用的方法(包含參數和返回類型)。在服務端實現這個接口,並運行一個 gRPC服務器來處理客戶端調用。在客戶端擁有一個存根能夠像服務端一樣的方法。

     gRPC 客戶端和服務端可以在多種環境中運行和交互。你可以用Java創建一個 gRPC 服務端,用 Go、Python、C# 來創建客戶端。

特點:

  • 跨語言;
  • 基於HTTP/2之上的二進制協議;
  • Protobuf序列化機制,比JSON體積小,網絡傳輸快;
  • 一個連接上可以多路複用,併發處理多個請求和響應;
  • 多種語言的類庫實現;
  • 服務定義文件和自動代碼生成(.proto 文件和 Protobuf 編譯工具);
  • 適合高性能輕量的微服務,一般對外的接口用Restful API,內部服務的調用用gRPC。gRPC是一個分佈式服務框架,和以前的WebService,WCF類似;
  • gRPC還提供了很多擴展點,用於對框架進行功能定製和擴展,例如,通過開放負載均衡接口可以無縫的與第三方組件進行集成對接(Zookeeper、域名解析服務、SLB 服務等)。

    gRPC 使用 HTTP/2 作爲傳輸協議。 雖然與 HTTP 1.1 也能兼容,但 HTTP/2 具有許多高級功能:

    用於數據傳輸的二進制組幀協議 - 與 HTTP 1.1 不同,HTTP 1.1 是基於文本的。

    對通過同一連接發送多個並行請求的多路複用支持 - HTTP 1.1 將處理限制爲一次處理一個請求/響應消息。

    雙向全雙工通信,用於同時發送客戶端請求和服務器響應。

    內置流式處理,支持對大型數據集進行異步流式處理的請求和響應。

    減少網絡使用率的標頭壓縮。

     gRPC 是輕量型且高性能的。 其處理速度可以比 JSON 序列化快 8 倍,消息小 60% 到 80%。 在 Microsoft Windows Communication Foundation (WCF) 中,gRPC 的性能超過經過高度優化的 NetTCP 綁定的速度和效率。 與偏向於 Microsoft 堆棧的 NetTCP 不同,gRPC 是跨平臺的。


接下來,我們通過一個Demo,來學習一下,如何在Visual Studio 2022中實現gRPC功能。

2、創建gRPC服務端

2.1、創建gRPC服務端項目

1. 打開Visual Studio 2022,在開始界面中選擇“創建新項目”。如下圖。

 

2.或者在菜單上點擊文件—>新建—>項目—>彈出“創建新項目”的界面。如下圖。

3. Visual Studio 2022彈出的“創建新項目”的對話框中做如下選擇。如下圖。

  • 在最左邊的下拉框中,選擇 “C# ,如下圖中1處
  • 在中間的下拉框中,選擇 “所有平臺”,如下圖2處。
  • 在最右邊的下拉框中,選擇“Web”,如下圖3處。
  • 在下圖中4處,選擇“ASP.NET Core gRPC服務”gRPC項目模板,點擊“下一步”按鈕。

     

4.在彈出的“配置新項目”的對話框中,如下圖,在“項目名稱”輸入框中,輸入“Demo.GrpcService”。然後使用鼠標點擊“下一步”按鈕。

5. 在彈出的“其他信息”的對話框,如下圖。在“框架”下拉框中,選擇“NET 7.0(標準期限支持)”。其他值選擇默認值即可。然後使用鼠標點擊“創建”按鈕。

6.默認項目文件結構,如下圖所示:

2.2、項目文件說明

  • appsettings.json
    我們打開appsettings.json文件,其中有一個Protocols屬性,代表基於Http2進行通信。

 

 

  • Protos
    在創建的項目中,我們會看到有一個名稱爲Protos的文件夾,該文件夾用於存放proto協議文件,其中的greet.proto是項目默認給我們創建的一個示例文件,它會根據協議自動生成需要的類文件。該協議文件中的具體說明如下圖所示:

 

  • Services
    在創建的項目中,我們會看到有一個名稱Services的文件夾,該文件夾用於存放具體的業務實現類(即:服務類),其中的GreeterService.cs是項目默認給我們創建的一個示例文件,具體說明如下圖所示:

       上述圖中的Greeter.GreeterBase來自greet.proto文件生成的類文件,具體位置如下圖所示:

 

 

  • 註冊服務

     在Visual Studio 2022的“解決方案資源管理器”中找到Program.cs文件,使用鼠標雙擊打開Program.cs文件,在這個文件中需要添加gRPC服務,同時需要將所有的業務服務進行註冊,如下圖所示:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章