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

kafka压缩

最近有幸公司参与kafka消息压缩,背景是日志消息量比较大。kafka版本2.4.1

一、确认压缩算法

根据场景不同选择不同。如果是带宽敏感患者推荐高压缩比的zstd,如果是cpu敏感患者推荐lz4

lz4和zstd底层都使用的是lz77算法,具体实现逻辑不同,根据我们现有日志消息计算最高压缩比。

最终结合我们生产环境最终是确认了使用lz4压缩算法。

二、压缩相关的参数

除了这几个基本的参数外,还需要相应的调整kafka的参数。

参数作用范围描述默认值关键依赖关系场景/注意事项
message.max.bytesBrokerBroker 允许接收的单个消息最大大小(含消息头、键、值)。1048588 (1MB)生产者需设置 max.request.size ≤ 此值;消费者需设置 max.partition.fetch.bytes ≥ 此值若消息超过此值,生产者会被 Broker 拒绝。需与生产者和消费者参数协同配置。
replica.fetch.max.bytes副本同步(Broker)副本从 Leader 分区单次拉取数据的最大字节数。1048576 (1MB)必须 ≥ message.max.bytes,否则副本无法同步大消息若设置过小,可能导致副本频繁掉出 ISR 列表。
fetch.message.max.bytes消费者(旧版本)已弃用,替代参数为 max.partition.fetch.bytes旧版本默认同 max.partition.fetch.bytes无(建议使用新参数)旧版本兼容性参数,新版本无需关注。
max.partition.fetch.bytes消费者消费者从单个分区单次拉取数据的最大字节数。1048576 (1MB)必须 ≥ message.max.bytes,否则无法消费大消息若分区中某条消息大小超过此值,消费者会抛出异常。
num.replica.fetchers副本同步(Broker)Broker 用于副本同步的线程数。增加此值可提升副本同步并行度。1无直接依赖,但需根据集群负载调整分区数多或吞吐量高时,增大此值可加速副本同步。
replica.lag.time.max.ms副本同步(Broker)副本若在此时间内未向 Leader 同步数据,则被标记为不同步(移出 ISR)。30000 (30秒)无直接依赖设置过短可能导致副本频繁移出 ISR;过长可能容忍滞后副本(影响可靠性)。

接着就是根据prometheus图 不断调整参数找到最适合的参数

相关文章:

  • 从0到1在windows上用flutter开发android app(环境准备、创建项目、加速构建)
  • Linux环境变量:深入解析与实用指南
  • 软件上线倒计时,测试团队如何量化风险优先级?
  • 本地基于Ollama部署的DeepSeek详细接口文档说明
  • 【dify】 dify环境变量配置说明
  • AI智能问答“胡说八道“-RAG探索之路
  • 微信小程序使用状态管理 - mobx-miniprogram
  • 打破同源策略:前端跨域的全面解析与应对策略
  • MIPI 详解:XAPP894 D-PHY Solutions
  • 深入理解Java的 JIT(即时编译器)
  • 操作系统(第三章 内存管理)
  • 计算机三级网络技术知识汇总【10】
  • AtCoderABC387题解
  • Java复习
  • 透析Vue的nextTick原理
  • tryhackme——Password Attacks
  • 考研c语言复习之栈
  • CMS网站模板定制设计与安全评估
  • 基于CAMEL 的Workforce 实现多智能体协同工作系统
  • Guava:Google开源的Java工具库,太强大了
  • 新村回响:一周城市生活
  • 马克思主义理论研究教学名师系列访谈|董雅华:让学生感知马克思主义理论存在于社会生活中
  • 美英达成贸易协议,美股集体收涨
  • 习近平抵达莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 中国经济新动能|警惕数字时代下经济的“四大极化”效应
  • 又一日军“慰安妇”制度受害者去世,大陆在世幸存者仅7人