推荐答案
-- -------------------- ---- ------- -- -- -- ---- -- --- ------- ------------- ------------------ -- -- -- ----- -- -- ------------- ------ - --------- ------- -------- ------- -------------- - --- -------- -------------- ------- ---------------- - ------- ------------ - ------ ---- - -- - ------- ------------- - ------ ------- - -- - -- -- -- ---- --- ----- ---- - ------------------------- ----- ----------- - ------------------------------ ----- ----------------- - ------------------------------------- - --------- ----- ------ ------- ------ ------- --------- ----- ------- ---- --- ----- ------------ - ------------------------------------------------------ -------- -------------- --------- - -------------- - -------- ------- --------------------- --- - ----- ------ - --- -------------- ------------------------------------------------------ - -------- --- --------------------------------- ---------------------------------------- -- -- - --------------- ----------------- ------ ------- -- ----------------------- --- -- -- -- ---- --- ----- ------ - --- ---------------------------------------------- ----------------------------------- ----------------- ----- ------- -- ----- --------- -- - -- ----- - ------------------- - ---- - ------------------------------ -- --- ------ ----- - ---
本题详细解读
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
消息。