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

自动推送代码wordpress教程站长工具seo综合查询网

自动推送代码wordpress教程,站长工具seo综合查询网,网页设计模板素材代码,电商平台运营是做什么的压缩 (compression) : 用时间换空间的思想 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输 Kafka 消息分两层: 消息日志组成 : n 个消息集合消息集合 (message set) 组成 : n 条日志项 (record item)日志项封装了消息 (message)Kafka 在消息集合层上进行写入…

压缩 (compression) : 用时间换空间的思想

  • 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输

Kafka 消息分两层:

  • 消息日志组成 : n 个消息集合
  • 消息集合 (message set) 组成 : n 条日志项 (record item)
  • 日志项封装了消息 (message)
  • Kafka 在消息集合层上进行写入操作

消息格式

Kafka 消息格式的引入版本 :

  • V0 版本 : Kafka 0.10.0.0 前
  • V1 版本 : Kafka 0.10.0.0 后引入
  • V2 版本 : Kafka 0.11.0.0 后引入

V0/V1

V0 消息格式 :

  • CRC 在每个消息中
  • 没有时间戳

在这里插入图片描述

V1 消息格式 :

  • CRC 依然在每个消息中
  • 增加了时间戳 , 记录该消息的事件时间
  • attribute 的第4位 : 时间戳类型 : CREATE_TIME (Producer 创建时间) , LOG_APPEND_TIME (Broker 写入时间)

在这里插入图片描述

V0/V1的消息集合格式 :

  • offset : 该消息的 offset (未压缩) ; 该批消息中最后一条消息的 offset (压缩)

在这里插入图片描述

V0/V1的缺点 :

  • 空间使用率低 : 固定 4 字节保存 key 或 value 的长度
  • 消息总长度未保存 : 要实时计算总字节数
  • 只保存最新消息位移 : 压缩后只保留最后一条 offset
  • 冗余 CRC 校验 : 每条消息都有 CRC

V2

V2 消息格式 :

  • 增加了消息总长度
  • 改为可变长的时间增量 (以消息集合中的起始时间戳)
  • 去除了 CRC 验证

在这里插入图片描述

V2 消息集合格式 :

  • 增加 CRC 验证
  • 增加支持幂等性及事务的 PID , producer epoch , 序列号

在这里插入图片描述

CRC

CRC 校验对比:

  • V1 的每条消息都要执行 CRC 校验,当出现 CRC 变化时,对每条消息都执行 CRC 校验 ,会浪费空间还耽误 CPU 时间
  • V2 把消息的 CRC 校验移到了消息集合层

CRC 变化情况 :

  • Broker 对消息时间戳字段更新时,CRC 值会更新
  • Broker 对消息格式转换时 (兼容老版本客户端),CRC 值会变化

压缩

各格式的压缩情况 :

  • V1 :把多条消息进行压缩,再保存到外层消息的消息体字段中
  • V2 :对整个消息集合进行压缩

V2 / V1 对比 :

在这里插入图片描述

压缩

压缩的地方:生产者端和 Broker 端

  • Broker 从 Producer 收到消息后 ,而不会重新压缩 (有特例)

开启 GZIP 的 Producer 对象 :

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
//指定 GZIP 压缩
props.put("compression.type", "gzip");Producer<String, String> producer = new KafkaProducer<>(props);

Broker 重新压缩消息情况 :

  • Broker 和 Producer 用不同的压缩算法
  • Broker 发生消息格式转换

不同算法 :

  • 例子 :Producer 用 GZIP; Broker 用 Snappy
  • Broker 接收到 GZIP 压缩消息后,只能解压缩后,用 Snappy 重新压缩一遍
  • 不同算法会引发 Broker 端 CPU 使用率飙升

消息格式转换 : 为了兼容老版本的消费者

  • Broker 会对新版本消息向老版本格式的转换
  • 该过程会对消息的解压缩和重新压缩
  • 这种消息格式转换对性能影响很大,失去压缩,Zero Copy 特性

零拷贝 (Zero Copy) :当数据在磁盘和网络进行传输时, 避免昂贵的内核态数据拷贝,而实现快速的数据传输

解压缩

信息压缩流程:

  • Producer 发送压缩消息到 Broker 后 ,Broker 原样保存
  • 当 Consumer 请求消息时,Broker 原样发送过去
  • 当消息到达 Consumer 后,由 Consumer 自行解压成原来消息

Consumer 用那种压缩算法:

  • 压缩算法封装在消息集合中,当 Consumer 读取到消息集合时,就得知消息用哪种压缩算法

Broker 端会解压缩 (与消息格式转换不同) :

  • 每个压缩过的消息集合在 Broker 写入时,会发生解压缩
  • 目的:为了对消息执行各种验证,会提高 CPU 的使用率

京东说明:去掉 Broker 消息校验而引入的解压缩 ,Broker 端的 CPU 使用率减少 50% ( Kafka 2.4 后实现)

压缩算法对比

Kafka 2.1.0 前,支持 3 种压缩算法:GZIP、Snappy、LZ4

  • 2.1.0 后,支持 Zstandard 算法 (zstd)

压缩算法的指标:

  • 压缩比:原 100 空间压缩后占 20 空间,压缩比是 5。压缩比越高越好
  • 压缩/解压缩吞吐量:每秒能压缩或解压缩多少 MB。吞吐量越高越好

压缩算法比较:

  • 吞吐量:LZ4 > Snappy > zstd 和 GZIP
  • 压缩比 : zstd > LZ4 > GZIP > Snappy
  • 用 Snappy 占带宽最多,zstd 最少

在这里插入图片描述

启用压缩的时机 :

  • Producer 的 机器 CPU 充足
  • 带宽资源有限。当客户端机器 CPU 吊,建议用 zstd 压缩,能节省网络带宽
http://www.yayakq.cn/news/370368/

相关文章:

  • 深圳专业网站开发深圳网站排名怎么做
  • 网站后台无ftp歌尔股份砍单
  • 公司网站总感觉少点什么找什么人做知更鸟wordpress主题下载
  • 汉口专业网站推广公司免费建设网站申请
  • 6生肖竞猜网站建设门户网站建设研究
  • 公司建设网站的通知书徐州市中宇建设工程有限公司网站
  • wordpress建的手机网站塑料瓶手工制作大全
  • 浏览器如何推广自己网站企业门户网站运营推广
  • 老网站绑定新网站如何做?环保公司网站建设内容
  • 物流公司响应式网站建设网站开发 商城开发
  • 建设厅网站怎么打印不出来有没有免费网站制作
  • 好习惯网站电子商务网站建设需要的语言及特点6
  • 宏润建设集团有限公司网站在哪里做网站效果好
  • 新闻类网站开发免费咨询法律顾问
  • 帮齐家网做的网站沙坪坝做网站
  • 美丽乡村建设规划文本网站网站建设相关的网站
  • php开发网站建设书籍能够做外贸的网站有哪些
  • 宁波网站制作相信荣胜网络wordpress关闭评论审核
  • 网站建设需要什么研究条件企业网站源码搜一品资源网
  • 东莞南城网站制作公司泸州中泸建设集团有限公司网站
  • 企梦网站建设宁德市医院
  • 三只松鼠的网站建设wordpress国外主题公园
  • 用asp做的网站运行完之后怎么生成一个可以打开的网站图标网页制作模板dw
  • 个人网站建设 实验报告广州建站优化
  • windows优化大师好吗做搜狗手机网站优化
  • 中山做网络推广的公司佛山seo关键词
  • 计算机毕设做网站难吗新津县网站建设
  • 做企业网站代码那种好WordPress大前端设置背景
  • 雷达图 做图网站整站优化关键词推广
  • 网站建设充值入口用js做的个人酷炫网站