Kafka08-优化-尚硅谷

5-Kafka优化

### 文章目录

  • [5-Kafka优化](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [@[toc]](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1 资源配置](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1.1 操作系统选择](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1.2 磁盘选择](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1.3 网络带宽](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1.4 内存配置](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.1.5 CPU 选择](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.2 集群容错](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.2.1 副本分配策略](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.2.2 故障转移方案](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.2.3 数据备份与恢复](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.3 参数配置优化(关键项)](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [5.4 数据压缩与批量发送](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [压缩算法对比](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)
  • [批处理方式](#文章目录 5-Kafka优化 @[toc] 5.1 资源配置 5.1.1 操作系统选择 5.1.2 磁盘选择 5.1.3 网络带宽 5.1.4 内存配置 5.1.5 CPU 选择 5.2 集群容错 5.2.1 副本分配策略 5.2.2 故障转移方案 5.2.3 数据备份与恢复 5.3 参数配置优化(关键项) 5.4 数据压缩与批量发送 压缩算法对比 批处理方式)

5.1 资源配置

5.1.1 操作系统选择
  • 知识点:Kafka 网络层依赖 Java NIO,Linux 用 epoll,Windows 用 select;Linux 支持零拷贝。
  • 答案:优先部署在 Linux,I/O 性能更高。
5.1.2 磁盘选择
  • 知识点:Kafka 顺序写,机械盘即可;自带冗余与分区负载,无需 RAID。
  • 答案:普通机械硬盘够用,按 1 亿条 1 KB 双副本保存 14 天估算需 ≈ 2.25 TB(开启 0.75 压缩比)。
5.1.3 网络带宽
  • 知识点:千兆网易成瓶颈,按"服务器台数 = 2 × (峰值速率 × 副本 ÷ 100) + 1"估算。
  • 答案:1 小时处理 1 TB,千兆网单机可用 240 Mb/s,需 ≈ 10 台;副本 2 倍则 20 台,副本 3 倍则 30 台。
5.1.4 内存配置
  • 知识点:JVM 堆 10--15 GB,页缓存保留段文件 25% 即可。
  • 答案:单节点 ≥ 16 GB 内存可保障流畅运行。
5.1.5 CPU 选择
  • 知识点:Kafka 线程多(网络、IO、副本、日志等)。
  • 答案:生产环境最低 16 核,建议 32 核以上。

5.2 集群容错

5.2.1 副本分配策略
  • 答案:每分区至少 2 副本,保证高可用。
5.2.2 故障转移方案
  • 答案:Broker 宕机时,Controller 自动把副本重分配到存活节点并选新 Leader。
5.2.3 数据备份与恢复
  • 答案:日志文件即本地备份;调整 retention 与 replica 策略确保持久性,必要时手动复制日志段恢复。

5.3 参数配置优化(关键项)

参数 调优方向 简略值/建议
num.network.threads 低延迟 适当提高到 6--8
num.io.threads 低延迟 可增至 16
socket.send/receive.buffer.bytes 高吞吐 调到 100--200 KB
batch.size 生产吞吐 32--64 KB
linger.ms 生产吞吐 5--20 ms
buffer.memory 生产缓存 可升至 64--128 MB
fetch.min/max.bytes & max.poll.records 消费吞吐 酌情增大,减少网络往返

5.4 数据压缩与批量发送

压缩算法对比
  • 答案:吞吐量 lz4 > snappy > zstd > gzip;压缩比 zstd > lz4 > gzip > snappy。高吞吐场景选 lz4,高压缩选 zstd。
批处理方式
  • 答案:异步批处理+合理设置 batch.size 与 linger.ms,可显著提升吞吐并降低网络请求次数。
相关推荐
岁岁种桃花儿3 小时前
Kafka从入门到上天系列第一篇:kafka的安装和启动
大数据·中间件·kafka
TTBIGDATA1 天前
【Atlas】Atlas Hook 消费 Kafka 报错:GroupAuthorizationException
hadoop·分布式·kafka·ambari·hdp·linq·ranger
indexsunny1 天前
互联网大厂Java面试实战:微服务与Spring生态技术解析
java·spring boot·redis·kafka·mybatis·hibernate·microservices
编程彩机1 天前
互联网大厂Java面试:从Spring Boot到分布式事务的技术场景解析
spring boot·kafka·分布式事务·微服务架构·java面试·技术解析
没有bug.的程序员1 天前
RocketMQ 与 Kafka 深度对垒:分布式消息引擎内核、事务金融级实战与高可用演进指南
java·分布式·kafka·rocketmq·分布式消息·引擎内核·事务金融
yumgpkpm1 天前
华为昇腾300T A2训练、微调Qwen过程,带保姆式命令,麒麟操作系统+鲲鹏CPU
hive·hadoop·华为·flink·spark·kafka·hbase
ApachePulsar1 天前
演讲回顾|谙流科技在 Kafka on Pulsar 之上的探索
分布式·科技·kafka
yumgpkpm2 天前
2026软件:白嫖,开源,外包,招标,晚进场(2025年下半年),数科,AI...中国的企业软件产业出路
大数据·人工智能·hadoop·算法·kafka·开源·cloudera
迎仔2 天前
09-消息队列Kafka介绍:大数据世界的“物流枢纽”
大数据·分布式·kafka
indexsunny2 天前
互联网大厂Java面试实录:Spring Boot微服务与Kafka消息队列实战解析
java·spring boot·微服务·面试·kafka·电商·技术解析