在當今數字化時代,構建高效、可靠的分散式系統是許多企業和開發團隊面臨的挑戰。微軟的 Orleans 框架為解決這些挑戰提供了一個強大而簡單的解決方案。本文將介紹 Orleans 的核心概念,並通過一個簡單的示例代碼來演示其用法。 什麼是 Orleans? Orleans 是由微軟開發的一個開源分散式 ...
gRPC入門學習之旅(二)
2.3、創建自定義服務
除上面的模板中自帶的一個gRPC服務之後,我們再創建一個自己的服務,我將創建一個用戶信息gRPC服務,主要功能有三個,登錄、獲取用戶信息、修改用戶信息。
- 創建UserInfo.proto協議文件
- 在“解決方案資源管理器”中,使用滑鼠左鍵選中“Protos”文件夾,然後在菜單欄上,依次選擇“添加-->新建項”。如下圖。
- 在“添加新項”對話框中,選擇“ASP.NET Core-->常規”節點,然後選擇“協議緩衝區文件”項。
- 在“名稱”文本框中,輸入 UserInfo.proto,然後選擇“添加”按鈕。如下圖。
4.Visual Studio 2022會在Protos目錄中添加一個UserInfo.proto協議文件。如下圖。
5.這個UserInfo.proto文件中的代碼如下:
syntax = "proto3"; option csharp_namespace = "Demo.GrpcService.Protos"; //包名 package user; //服務名稱 service UserInfo{ //方法名稱 rpc GetUserInfo (UserInfoRequest) returns (UserInfoResult); rpc Login(UserInfoRequest) returns(UserInfoResult); rpc Save(UserInfoRequest) returns (UserInfoResult); } //請求的參數對象 message UserInfoRequest{ string UserName = 1; string Password=2; } //請求響應的對象 message UserInfoResult{ string UserName = 1; string Password=2; int32 Age = 3; string Tel=4; string Name=5; int32 Sex=6; string City=7; bool IsLogin=8; }
- 添加userinfo.proto協議文件的關聯配置
6.在“解決方案資源管理器”中,使用滑鼠左鍵選中項目名稱“Demo.GrpcService”,然後使用滑鼠雙擊這個名稱,Visual Studio 2022將在文本編輯器中打開項目文件。 如下圖。
7. 在文本編輯器中找到ItemGroup節點,在ItemGroup
節點中增加如下配置:如下圖。
<ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Server" /> <Protobuf Include="Protos\UserInfo.proto" GrpcServices="Server" /> </ItemGroup>
8.在“解決方案資源管理器”中,使用滑鼠左鍵選中項目名稱“Demo.GrpcService”,然後單擊滑鼠右鍵,在彈出的快捷菜單中選擇“重新生成”菜單項。如下圖。
9.我們打開“文件資源管理器”,進入到Demo.Grpc.Service\obj\Debug\net7.0\Protos
目錄,發現此時目錄下比剛纔多了2個.cs文件,就是我們自己定義的UserInfo.proto協議文件對應的類文件,如下圖所示: