Defining Services - 定义服务
如果要在RPC(Remote Procedure Call,远程过程调用)系统中使用消息类型,可以在.proto
文件中定义RPC服务接口,协议缓冲区编译器将根据所选语言生成服务接口代码和存根。因此,例如,如果您想用一个方法定义一个RPC服务,该方法接受您的SearchRequest并返回一个SearchResponse,您可以在.proto文件中这样定义它:
service SearchService {
rpc Search(SearchRequest) returns (SearchResponse);
}
与协议缓冲区一起使用的最直接的RPC系统是gRPC:Google开发的一个与语言和平台无关的开源RPC系统。gRPC与协议缓冲区配合得特别好,允许您使用特殊的协议缓冲区编译器插件直接从.proto文件生成相关的RPC代码。
如果您不想使用gRPC,也可以在自己的RPC实现中使用协议缓冲区。你可以在Proto2语言指南中找到更多相关信息。
还有一些正在进行的第三方项目正在为协议缓冲区开发RPC实现。有关我们知道的项目的链接列表,请参阅第三方加载项wiki页面。