我的 Kafka 旅程 - 性能调优
Producer
于 config/producer.properties 配置文件中的项
# 序列化数据压缩方式 [none/gzip/snappy/lz4/zstd]
compression.type = snappy # default=none
# 内存队列缓冲区总大小
buffer.memory = 67108864 # default=32M
# 数据块/批次 单个大小
batch.size = 32768 # default=16K
# 数据块/批次 过期毫秒
linger.ms = 5 # default=0
# Broker 分区的应答机制
acks = 1 # default=all
# 发送请求允许最大的积压数
max.in.flight.requests.per.connection = 5 # default=5
# 发送失败的重试次数
retries = 2147483647 # default=0
# 发送失败重试间隔毫秒
retry.backoff.ms = 100 # default=100ms
# 幂等性(生产者编号 + Broker分区编号 + 消息编号)
enable.idempotence = true # default=true
Broker
于 config/server.properties 配置文件中的项
# 数据写磁盘线程数(占总核心数60%)
num.io.threads = 8 # default=8
# 副本主动拉取线程数(占总核心数10%)
num.replica.fetchers = 1 # default=1
# 数据网络传输线程数(占总核心数30%)
num.network.threads = 3 # default=3
# 不存在的Topic自动创建
auto.create.topics.enable = true # default=true
# 副本通信超时
replica.lag.time.max.ms = 30000 # default=30000
# Broker leader partition 分区再平衡
auto.leader.rebalance.enable = true # default=true
# 再平衡警戒值(%)
leader.imbalance.per.broker.percentage = 1 # default=10
# 再平衡检测间隔秒数
leader.imbalance.check.interval.seconds = 300 # default=300
# 数据分片单文件大小
log.segment.bytes = 1073741824 # default=1GB
# 数据每索引范围大小
log.index.interval.bytes = 4096 # default=4KB
# 数据保留时长
log.retention.hours = 168 # default=168 (7天)
# 数据保留分钟
log.retention.minutes # default=null
# 数据保留毫秒
log.retention.ms # default=null
# 数据保留检测间隔
log.retention.check.interval.ms = 300000 # default=300000
# 数据保留总大小
log.retention.bytes = -1 # default=-1 (无穷大)
# 数据删除策略 [compact,delete]
log.cleanup.policy = delete # default=delete
Consumer
于 config/consumer.properties 配置文件中的项
# 自动提交消费偏移量
enable.auto.commit = true # default=true
# 提交消费偏移量频率间隔
auto.commit.interval.ms = 5000 # default=5000
# 缺少偏移量的处理 [latest,earliest,none]
auto.offset.reset = latest # default=latest
# 分区数
offsets.topic.num.partitions = 50 # default=50
# 与Broker间的心跳间隔
heartbeat.interval.ms = 5000 # default=3000
# 与Broker间的超时
session.timeout.ms = 45000 # default=45000
# 消息处理最大时长
max.poll.interval.ms = 300000 # default=300000
# 单次拉取数据大小
fetch.max.bytes = 57671680 # default=50M
# 单次拉取数据最大条数
max.poll.records = 500 # default=500
# 再平衡策略 # default= Range + CooperativeSticky
partition.assignment.strategy = class...RangeAssignor,class...CooperativeStickyAssignor
整体吞吐量
生产者
- buffer.memory:增加内存缓冲区
- batch.size:增加单数据块/批次容量
- linger.ms:消息发送延迟5毫秒
- compression.type:开启压缩
Broker
- 增加分区数(按分类分区)并行处理
消费者
- fetch.max.bytes:每次消费数据最大容量
- max.poll.recodes:每次消费数据最大条数
数据精确一次
生产者:acks = all,幂等性 + 事务
Broker:分区副本至少大于2,防丢失
消费者:手动提交offset + 事务
我的 Kafka 旅程 - 性能调优的更多相关文章
- 【Kafka】Kafka-副本-分区设置-性能调优
Kafka-副本-分区设置-性能调优 SparkKafkaDemo - Executors kafka replication 负载均衡_百度搜索 Kafka 高性能吞吐揭秘 - 友盟博客 - Seg ...
- Kafka跨集群迁移方案MirrorMaker原理、使用以及性能调优实践
序言Kakfa MirrorMaker是Kafka 官方提供的跨数据中心的流数据同步方案.其实现原理,其实就是通过从Source Cluster消费消息然后将消息生产到Target Cluster,即 ...
- Kafka性能调优 - Kafka优化的方法
今天,我们将讨论Kafka Performance Tuning.在本文“Kafka性能调优”中,我们将描述在设置集群配置时需要注意的配置.此外,我们将讨论Tuning Kafka Producers ...
- Spark Streaming性能调优详解
Spark Streaming性能调优详解 Spark 2015-04-28 7:43:05 7896℃ 0评论 分享到微博 下载为PDF 2014 Spark亚太峰会会议资料下载.< ...
- Spark Streaming性能调优详解(转)
原文链接:Spark Streaming性能调优详解 Spark Streaming提供了高效便捷的流式处理模式,但是在有些场景下,使用默认的配置达不到最优,甚至无法实时处理来自外部的数据,这时候我们 ...
- 《Tomcat和JVM的性能调优你真的学会了吗?》总结篇
Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...
- storm杂记+性能调优
1.默认情况下: 1个supervisor节点启动4个worker进程. 每一个topology默认占用一个worker进程. 每个worker会启动executor. 每个executor默认启动一 ...
- ElasticSearch中的JVM性能调优
ElasticSearch中的JVM性能调优 前一段时间被人问了个问题:在使用ES的过程中有没有做过什么JVM调优措施? 在我搭建ES集群过程中,参照important-settings官方文档来的, ...
- DataPipeline |ApacheKafka实战作者胡夕:Apache Kafka监控与调优
https://baijiahao.baidu.com/s?id=1610644333184173190&wfr=spider&for=pc DataPipeline |ApacheK ...
随机推荐
- 【PostgreSQL 15】PostgreSQL 15对UNIQUE和NULL的改进
用一句话来总结这种改进就是: 支持唯一性约束和索引将null值视为相同的值.之前是将null值索引成不同的值,现在可以通过使用unique nulls not distinct创建约束,将null值视 ...
- 一篇文章带你走进meta viewport的世界
一.什么是 meta 标签? 可提供有关页面的元信息 二.为什么需要移动端适配? 因为我们在 pc 端上看到的页面都是比较大的,在 pc 端上都是正常显示的,自动不会被进行缩放,除非手动进行放大或缩小 ...
- ABC251 题解
典中典比赛 . 目录 A - Six Characters B - At Most 3 (Judge ver.) C - Poem Online Judge D - At Most 3 (Contes ...
- spring boot实现不同生产环境下的文件配置
配置不同生产环境 本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露. 设置maven 作用:1. 手动调节运行时的不同环境 2. 打包时可以不会有其它环境的文件 注:每次换环境前 ...
- Python基础之数据类型和变量
数据类型 计算机顾名思义就是可以做数学机器,可以处理各种数值,计算机还能处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据是需要定义不同的数据类型的,在Python中,能够直接处理的数据 ...
- 使用 for 循环 打印 9X9乘法表
C 语言自学之99乘法表 请使用for循环,倒序打印9*9乘法表 1 #include <stdio.h> 2 3 int main() 4 { 5 int i,j,result;//定义 ...
- 如何自定义一个Collector
Collectors类提供了很多方便的方法,假如现有的实现不能满足需求,我们如何自定义一个Collector呢? Collector接口提供了一个of方法,调用该方法就可以实现定制Collecto ...
- atcoder beginner contest 251(D-E)
Tasks - Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)\ D - At Most 3 (Contestant ...
- 诺塔斯读写卡QT SDK笔记
卡片操作函数调用 寻卡: Request --> LotusCardRequest 防撞处理: Anticollission --> LotusCardAnticoll 选卡: Selec ...
- ubuntu 16.04 搭建docker
1.为确保运行的不是旧版Docker sudo apt-get remove docker docker-engine docker.io 2.添加Docker COmmunity Edition 所 ...