当前位置: 首页 > news >正文

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

相关文章:

  • 一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)
  • SEGGERS实时系统embOS推出Linux端模拟器
  • 【LeetCode 算法笔记】155. 最小栈
  • Linux操作系统入门(三)
  • MacBook上怎么查找历史复制记录?
  • java微信机器人制作教程
  • html2canvas + JsPDF.js 导出pdf分页时的问题
  • 【深度学习】Pytorch教程(八):PyTorch数据结构:2、张量的数学运算(6):高维张量:乘法、卷积(conv2d~四维张量;conv3d~五维张量)
  • 虚拟机中window7界面太小解决办法
  • 【C++进阶】哈希(万字详解)—— 学习篇(上)
  • iOS 通过NSURLProtocol拦截WKWebView网络请求
  • docker小知识:linux环境安装docker
  • 三.keepalived介绍及工作原理
  • 关于IDEA中properties文件属性选择的问题
  • maven私服
  • 4.triton c++使用
  • IDEA反编译Jar包
  • 五步法搞定BI业务需求梳理
  • 二、LVS的安装部署
  • MindSpore 实现unflod和flod
  • 一文看懂Linux内核页缓存(Page Cache)
  • 安卓面经_安卓基础面全解析<16/30>之线程池全解析
  • 电脑Tab键有什么功能?分享Tab键的6个妙用
  • 四、网络层(六)移动IP
  • 元数据相关的术语,你知道几个?
  • Jmeter实现websocket协议接口测试
  • 直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究
  • 【关于时间序列的ML】项目 8 :使用 Facebook Prophet 模型预测股票价格
  • 洛谷 CF1743APassword 题解
  • element plus + vue3表单第一次数据未清空的bug问题解决
  • 电力系统两阶段随机优化(Matlab实现)
  • 基于GINA/凭证提供程序的自助密码管理