21. 【gRPC系列学习】压缩算法Compressor
在前面章节学习的时候,虽然没有专门讲过压缩算法,但都会带着分析,基本在拼装数据的时候,指明压缩算法进行数据压缩、对端进行解压缩。
1. 使用系统字段的压缩算法
客户端在远程调用时,可配置系统已有的压缩算法,例如gzip。此时服务器不需要任何修改,服务端自动检测压缩算法,压缩算法被写入headerField
,服务端可以拿到算法类型,只要服务端内部集成该压缩算法,就可以成功解压、调用。
grpc.UseCompressor(gzip.Name)
1. 自定义压缩算法
思路:
- 实现自定义压缩算法,满足系统定义的接口要求
- 将该算法注册到gRPC压缩算法全局
grpc.UseCompressor()
程序调用
自定义压缩算法需要实现三个接口
Compress(w io.Writer) (io.WriteCloser, error)
压缩接口Decompress(r io.Reader) (io.Reader, error)
解压接口Name() string