使用 protobuf
1. 什么是 Protocol Buffers
Protocol Buffers(简称 protobuf)是 Google 开发的一种语言中立、平台无关、可扩展的结构化数据序列化协议,常用于网络通信和数据存储。
特点:
- 体积小、效率高(相比 JSON 更快更紧凑)
- 支持多语言生成代码
- 可向后兼容字段修改
2. 定义 .proto 文件
一个简单的 protobuf 文件示例:
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
repeated string hobbies = 3;
}
说明:
syntax = "proto3":指定语法版本message:定义结构体类型- 字段编号用于序列化顺序,不能重复
3. 安装 protoc 与插件
- 安装
protoc编译器:https://protobuf.dev - 安装 Go 插件:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
确保 GOPATH/bin 在环境变量中。
4. 生成 Go 代码
使用 protoc 编译:
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
person.proto
将生成对应的 .pb.go 文件。
5. 在 Go 中使用
使用生成的结构体:
p := &Person{
Name: "Alice",
Age: 30,
Hobbies: []string{"reading", "cycling"},
}
data, err := proto.Marshal(p)
var p2 Person
err = proto.Unmarshal(data, &p2)
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 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。