Node.js 面试题
目录

如何使用 gRPC 实现远程过程调用 (RPC)?

· 约 4 分钟读完 · 第 100 / 377 章

推荐答案

本题详细解读

1. 什么是 gRPC?

gRPC 是一个高性能、开源的通用 RPC 框架,由 Google 开发。它基于 HTTP/2 协议,使用 Protocol Buffers 作为接口定义语言(IDL),支持多种编程语言。

2. 如何使用 gRPC 实现 RPC?

  • 定义服务接口:使用 .proto 文件定义服务接口和消息格式。
  • 生成代码:使用 protoc 编译器生成客户端和服务端代码。
  • 实现服务端:在服务端实现定义的服务接口。
  • 实现客户端:在客户端调用远程服务。

3. 代码解析

  • 安装依赖:@grpc/grpc-js 是 gRPC 的 Node.js 实现,@grpc/proto-loader 用于加载 .proto 文件。
  • 定义 proto 文件:example.proto 文件定义了服务接口 ExampleService 和消息格式 HelloRequest 和 HelloResponse。
  • 创建 gRPC 服务器:使用 grpc.Server 创建服务器,并实现 sayHello 方法。
  • 创建 gRPC 客户端:使用生成的客户端代码调用远程服务。

4. 运行流程

  • 服务器启动后监听 50051 端口。
  • 客户端通过 localhost:50051 连接到服务器,并调用 sayHello 方法。
  • 服务器接收到请求后,返回 Hello, World 消息。