Google Protobuf 服务中的 RPC

RPC in Google Protobuf services

单个 protobuf 服务定义可以定义多个 rpc 调用吗?

service HelloService {
  rpc SayHello (HelloRequest) returns (HelloResponse);
  rpc SayHello2 (HelloRequest2) returns (HelloResponse2);
  rpc SayHello (HelloRequest3) returns (HelloResponse3);
}

protobuf 定义没有在任何地方指定它,但似乎所有示例都只有一个。

有趣的是,protobuf 文档的 Defining Services 部分缺少明确的说明,但以下示例摘自 grpc 文档,它清楚地回答了您的问题:

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  // Sends another greeting
  rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}