重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
.Net Core3.0如何使用gRPC,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
成都创新互联是一家集网站建设,福清企业网站建设,福清品牌网站建设,网站定制,福清网站建设报价,网络营销,网络优化,福清网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
gRPC是可以在任何环境中运行的现代开源高性能RPC框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。它也适用于分布式计算的最后一英里,以将设备,移动应用程序和浏览器连接到后端服务。
用于定义gRPC服务和消息的协定;服务端和客户端共享proto文件。
.NETcore 3.0创建项目提供了一个新的gRPC模板,可以轻松地使用ASP.NET Core构建gRPC服务。我们按照步骤一步一步创建AA.GrpcService 服务,当然你可以使用命令:dotnet new grpc -o GrpcGreeter
选择gRPC服务项目模板
最终生成的项目
syntax = "proto3";
option csharp_namespace = "AA.GrpcService";
package Greet;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply);
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings.
message HelloReply {
string message = 1;
}
public class GreeterService : Greeter.GreeterBase
{
private readonly ILogger
_logger; public GreeterService(ILogger
logger) {
_logger = logger;
}
public override Task
SayHello(HelloRequest request, ServerCallContext context) {
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService
();
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
});
});
}
创建完成之后,自动包含了包的引用、proto文件的创建、services服务的生成,模板项目在后台执行一些操作如
创建一个包含所有gRPC依赖项的ASP.NET Core项目。
创建一个名为的gRPC服务定义文件greet.proto。
根据服务定义文件自动生成所有gRPC存根。
GreeterService.cs根据自动生成的gRPC存根创建gRPC服务。
在Startup.cs中配置gRPC管道映射到GreeterService.cs
添加引用包:
package Grpc.Net.ClientFactory
package Google.Protobuf
package Grpc.Tools
Protos 文件(包含greet.proto)自动从AA.GrpcService项目拷贝
自动添加节点
Protos\greet.proto
最后,添加以下代码进行gRPC请求;
class Program { static async Task Main(string[] args) { using var channel = GrpcChannel.ForAddress("https://localhost:5005"); var client = new Greeter.GreeterClient(channel); var response = await client.SayHelloAsync(new HelloRequest { Name = "gRPC" }); Console.WriteLine("Greeting:" + response.Message); Console.WriteLine("Press a key to exit"); Console.ReadKey(); } }
运行结果图:
关于.Net Core3.0如何使用gRPC问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。