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 旅程 - 性能调优的更多相关文章

  1. 【Kafka】Kafka-副本-分区设置-性能调优

    Kafka-副本-分区设置-性能调优 SparkKafkaDemo - Executors kafka replication 负载均衡_百度搜索 Kafka 高性能吞吐揭秘 - 友盟博客 - Seg ...

  2. Kafka跨集群迁移方案MirrorMaker原理、使用以及性能调优实践

    序言Kakfa MirrorMaker是Kafka 官方提供的跨数据中心的流数据同步方案.其实现原理,其实就是通过从Source Cluster消费消息然后将消息生产到Target Cluster,即 ...

  3. Kafka性能调优 - Kafka优化的方法

    今天,我们将讨论Kafka Performance Tuning.在本文“Kafka性能调优”中,我们将描述在设置集群配置时需要注意的配置.此外,我们将讨论Tuning Kafka Producers ...

  4. Spark Streaming性能调优详解

    Spark Streaming性能调优详解 Spark  2015-04-28 7:43:05  7896℃  0评论 分享到微博   下载为PDF 2014 Spark亚太峰会会议资料下载.< ...

  5. Spark Streaming性能调优详解(转)

    原文链接:Spark Streaming性能调优详解 Spark Streaming提供了高效便捷的流式处理模式,但是在有些场景下,使用默认的配置达不到最优,甚至无法实时处理来自外部的数据,这时候我们 ...

  6. 《Tomcat和JVM的性能调优你真的学会了吗?》总结篇

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  7. storm杂记+性能调优

    1.默认情况下: 1个supervisor节点启动4个worker进程. 每一个topology默认占用一个worker进程. 每个worker会启动executor. 每个executor默认启动一 ...

  8. ElasticSearch中的JVM性能调优

    ElasticSearch中的JVM性能调优 前一段时间被人问了个问题:在使用ES的过程中有没有做过什么JVM调优措施? 在我搭建ES集群过程中,参照important-settings官方文档来的, ...

  9. DataPipeline |ApacheKafka实战作者胡夕:Apache Kafka监控与调优

    https://baijiahao.baidu.com/s?id=1610644333184173190&wfr=spider&for=pc DataPipeline |ApacheK ...

随机推荐

  1. BZOJ1874 「一本通 6.7 练习 1」【一本通提高博弈论】取石子游戏

    「一本通 6.7 练习 1」取石子游戏 题目描述 小H和小Z正在玩一个取石子游戏. 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游 ...

  2. 第四天python3 python解析式-生成器-迭代器

    标准库datetime datetime模块  对日期.时间.时间戳的处理 datetime类 类方法: today() 返回本地时区当前时间的datetime对象: now(tz=None) 返回当 ...

  3. 「游戏引擎 浅入浅出」4.1 Unity Shader和OpenGL Shader

    「游戏引擎 浅入浅出」从零编写游戏引擎教程,是一本开源电子书,PDF/随书代码/资源下载: https://github.com/ThisisGame/cpp-game-engine-book 4.1 ...

  4. 适合初学者的使用CNN的数字图像识别项目:Digit Recognizer with CNN for beginner

    准备工作 数据集介绍 数据文件 train.csv 和 test.csv 包含从零到九的手绘数字的灰度图像. 每张图像高 28 像素,宽 28 像素,总共 784 像素.每个像素都有一个与之关联的像素 ...

  5. Nginx Rewrite资源重定向

    # Rewrite功能配置 # Rewrite功能主要是实现了url重写 # 如:你输入www.jd123.com,你可以通过Rewrite让它重定向到www.jd.com # Rewrite的实现依 ...

  6. SpringBoot 如何集成 MyBatisPlus - SpringBoot 2.7.2实战基础

    SpringBoot 2.7.2 学习系列,本节通过实战内容讲解如何集成 MyBatisPlus 本文在前文的基础上集成 MyBatisPlus,并创建数据库表,实现一个实体简单的 CRUD 接口. ...

  7. 11中javascrip教程教不到的小技巧

    1.过滤唯一值 Set对象类型是在ES6中引入的,配合展开操作...一起,我们可以使用它来创建一个新数组,该数组只有唯一的值. 1 const array = [1, 1, 2, 3, 5, 5, 1 ...

  8. JUC源码学习笔记4——原子类,CAS,Volatile内存屏障,缓存伪共享与UnSafe相关方法

    JUC源码学习笔记4--原子类,CAS,Volatile内存屏障,缓存伪共享与UnSafe相关方法 volatile的原理和内存屏障参考<Java并发编程的艺术> 原子类源码基于JDK8 ...

  9. 在docker中出现的僵尸进程怎么处理

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.发现问题 小玲是一名数据库测试人员,这一天她尝试在docker环境中部署GreatDB集群,结果在对greatsqld ...

  10. Redis 10 位图

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 概述 Redi ...