本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
gRPC 是一个可以在任何环境中运行的现代开源高性能 RPC 框架。它使用 HTTP/2 进行传输,使用 Protocol Buffers 作为接口描述语言。
gRPC 被设计为:
在本文中,我们将了解如何在后端开发中使用 gRPC 进行高性能通信。
使用 gRPC 的原因有很多,但其中一些最重要的原因是:
使用 gRPC 很简单。第一步是为您选择的编程语言安装 gRPC 库。然后,您需要使用 Protocol Buffers 接口描述语言在 .proto 文件中定义您的服务。最后,您需要编写代码来实现该服务。
让我们看一个简单的例子。我们将创建一个接受名称并返回问候语的服务。
首先,我们需要为 Node.js 安装 gRPC 库:
npm install grpc
接下来,我们需要在 .proto 文件中定义我们的服务。我们将调用我们的文件 greet.proto:
syntax = "proto3";
package greet;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
在此文件中,我们定义了一个名为 Greeter 的服务,其中包含一个名为 SayHello 的方法。此方法采用包含名称的 HelloRequest,并返回包含消息的 HelloReply。
最后,我们需要编写代码来实现服务。我们将创建一个名为 greeter_server.js 的文件:
var grpc = require('grpc');
var protoLoader = require('@grpc/proto-loader');
var packageDefinition = protoLoader.loadSync(
__dirname + '/greet.proto',
{
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
});
var greet_proto = grpc.loadPackageDefinition(packageDefinition).greet;
function sayHello(call, callback) {
callback(null, {message: 'Hello ' + call.request.name});
}
function main() {
var server = new grpc.Server();
server.addService(greet_proto.Greeter.service, {sayHello: sayHello});
server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
server.start();
}
main();
在这个文件中,我们导入了 grpc 和 proto-loader 库。我们已经加载了 .proto 文件并定义了 SayHello 方法。最后,我们创建了一个 gRPC 服务器并在端口 50051 上启动了它。
在本文中,我们研究了如何在后端开发中使用 gRPC 进行高性能通信。我们已经了解了如何安装 gRPC 库、如何在 .proto 文件中定义服务以及如何编写代码来实现该服务。