go-wind-plugins 提供压缩和序列化辅助插件,减少网络传输体积和存储空间。
| 适配器 | 导入路径 | 压缩率 | 速度 |
|---|
| Gzip | plugins/compress/gzip | 高 | 中 |
| Snappy | plugins/compress/snappy | 中 | 极快 |
| LZ4 | plugins/compress/lz4 | 中 | 极快 |
| Zstd | plugins/compress/zstd | 高 | 快 |
| Brotli | plugins/compress/brotli | 最高 | 慢 |
import compressPlugin "github.com/tx7do/go-wind-plugins/compress/gzip"
compressor := compressPlugin.New(
compressPlugin.WithLevel(6),
)
compressed, _ := compressor.Compress(data)
original, _ := compressor.Decompress(compressed)
broker:
kafka:
producer:
compression: zstd
| 格式 | 体积 | 速度 | 可读性 | Schema |
|---|
| JSON | 大 | 快 | 是 | 无 |
| Protobuf | 最小 | 最快 | 否 | .proto |
| MessagePack | 小 | 快 | 否 | 无 |
| YAML | 中 | 慢 | 是 | 无 |
| TOML | 中 | 慢 | 是 | 无 |
| Avro | 小 | 快 | 否 | .avsc |
syntax = "proto3";
message User {
string id = 1;
string name = 2;
string email = 3;
string phone = 4;
}
| 操作 | 兼容性 |
|---|
| 新增字段 | 向前兼容 |
| 删除字段 | 向后兼容(需保留字段号) |
| 修改字段类型 | 不兼容 |
| 修改字段编号 | 不兼容 |