RPC 与 gRPC 简介
1. 什么是 RPC
RPC(Remote Procedure Call,远程过程调用)是一种通过网络调用远程服务器函数的机制,就像调用本地函数一样简洁。
特点:
- 屏蔽通信细节
- 通常基于 TCP 或 HTTP
- 使用序列化机制(如 JSON、Protobuf)
2. 什么是 gRPC
gRPC 是 Google 开源的高性能 RPC 框架,基于 HTTP/2 和 Protocol Buffers(protobuf)序列化协议。
主要特性:
- 使用
.proto定义服务和消息结构 - 跨语言支持广泛(Go、Java、Python 等)
- 支持流式传输(Client/Server/Bidirectional)
- 内置认证、超时、负载均衡等功能
3. gRPC 工作流程简述
- 定义
.proto文件,声明服务和消息类型 - 使用 protoc 编译生成 Go 代码
- 实现服务端逻辑并启动 gRPC 服务器
- 客户端使用生成的代码进行调用
4. RPC 与 gRPC 对比
| 特性 | RPC(通用) | gRPC |
|---|---|---|
| 协议 | 多样(HTTP、TCP) | HTTP/2 |
| 序列化格式 | JSON、XML 等 | Protobuf(高效、二进制) |
| 性能 | 一般 | 高性能,支持多路复用 |
| 工具链支持 | 分散 | 完善,官方工具支持生成代码 |
| 双向流 | 支持较少 | 原生支持 |
gRPC 是构建高效微服务的主流选择,适合需要高性能、强类型接口的分布式系统。
相关内容
- 什么是 Go Go 是由 Google 开发的一种开源编程语言,以简洁、高效、并发编程支持强著称,广泛应用于后端开发、云原生和微服务等领域。
- Go 的特点与适用场景 Go 语言以高并发、快速编译、简洁语法和强大标准库著称,适用于构建高性能网络服务、微服务架构和云原生应用。
- 安装 Go(Windows/Linux/macOS) 本节介绍如何在 Windows、Linux 和 macOS 上安装 Go 语言开发环境,包含安装步骤、验证方法及常见注意事项。
- 设置环境变量 本节介绍如何为 Go 语言配置环境变量,包括 GOPATH、GOROOT、PATH 等关键变量,适用于 Windows、Linux 和 macOS 系统。
- 第一个 Go 程序(Hello World) 本节将带你编写第一个 Go 程序“Hello, World”,帮助你快速了解 Go 的基础语法和程序结构。
- Go Modules 简介 本节介绍 Go Modules 的基本概念与用法,它是 Go 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。