一、本文中使用的工具:
Vs2022使用.NET 8.0开发基于ASP.NET Core WebApi的gRPC服务;
Nginx:1.25.5,下载地址:http://nginx.org/en/download.html
二、gRPC介绍:
由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。在vs2022中可以直接创建gRPC服务,并使用Kestrel运行。
三、Kestrel web服务介绍:
Kestrel 是一个跨平台的Web服务器,会默认在ASP.NET Core 项目模板中对其进行配置。未使用 IIS 托管时,ASP.NET Core 项目模板默认使用 Kestrel。Kestrel是.NetCore的一个中间件,其运行在dotnet进程上。
四、创建基于Asp.Net Core WebApi的gRPC服务
- 在VS2022中使用默认模板创建Asp.Net Core WebApi的项目WebApiGrpcService;
- 在NuGet包中,添加Grpc.AspNetCore;
- 在WebApi工程中创建gRPC服务的相关文件:proto文件和service类型
order.proto的内容
syntax = "proto3";
option csharp_namespace = "WebApiGrpcService.Protos";
package order;
// 订单服务定义
service Order {
// 创建订单
rpc CreateOrder (CreateRequest) returns (CreateResult);
//查询订单
rpc QueryOrder (QueryRequest) returns (QueryResult);
}
//创建订单请求参数
message CreateRequest {
string orderNo =