作者:婷婷爱BB | 来源:互联网 | 2023-02-08 15:04
新建一个HealthCheckService.proto 官方标准写法,不要问为什么?syntaxproto3;packagegrpc.health.v1;messageHeal
![](https://img3.php1.cn/3cdc5/6351/711/8aa601412050fd74.png)
新建一个HealthCheckService.proto 官方标准写法,不要问为什么?
syntax = "proto3";
package grpc.health.v1;
message HealthCheckRequest {
string service = 1;
}
message HealthCheckResponse {
enum ServingStatus {
UNKNOWN = 0;
SERVING = 1;
NOT_SERVING = 2;
}
ServingStatus status = 1;
}
service Health {
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
}
services ![](https://img3.php1.cn/3cdc5/6351/711/731b26441bfb6fd0.png)
public class HealthCheckService : Health.HealthBase
{
public override Task Check(HealthCheckRequest request, ServerCallContext context)
{
Console.WriteLine($"This is {nameof(HealthCheckService)} Check ");
//TODO:检查逻辑
return Task.FromResult(new HealthCheckResponse() { Status = HealthCheckResponse.Types.ServingStatus.Serving });
}
public override async Task Watch(HealthCheckRequest request, IServerStreamWriter responseStream, ServerCallContext context)
{
//TODO:检查逻辑
await responseStream.WriteAsync(new HealthCheckResponse()
{ Status = HealthCheckResponse.Types.ServingStatus.Serving });
}
}
Program 里面
管道流程写入方法
app.MapGrpcService();