当前位置:   article > 正文

Kafka 性能调优

Kafka 性能调优

在这里插入图片描述

相关指标

调优策略参考自《Apache Kafka 实战》

吞吐量:broker 或应用程序每条能处理多少消息
延时:通常指 producer 端发送消息到 broker 端持久化保存消息之间的时间间隔。也用于统计端到端的延时,比如 producer 端发送一条消息到 consumer 端消费这条消息的时间间隔

调优吞吐量

目标策略
broker适当增加 num.replica.fetchers,但不要超过 cpu 核数
producer适当增加 batch.size
适当增加 linger.ms
acks=0或1
retries=0
增加 buffer.memory
consumer采用多 consumer 实例
增加 fetch.min.bytes

调优延时

目标策略
borker适当增加 num.replica.fetchers
避免创建过多 topic 分区
producerlinger.ms=0
compression.type=none
acks=0或1
consumerfetch.min.bytes=1

调优持久性

目标策略
brokerunclean.leader.election.enable=false
auto.create.topics.enable=false
replication.factor=3,min.insync.replicas=replication.factor-1
default.replication.factor=3
log.flush.interval.message和log.flush.interval.ms为一个较小的值
produceracks=all
retries 为一个较大的值
max.in.flight.requests.per.connection=1
enable.idempotence=true启用幂等性

调优可用性

目标策略
broker避免创建过多分区
unclean.leader.election.enable=true
min.insync.replicas=1
produceracks=1
consumer设置 session.timeout.ms 为较低的值
设置 max.poll.records 和 max.partition.fetch.bytes 为较低的值,减少 consumer 处理消息的总时长,避免频繁 rebalance

无消息丢失配置

至少一次(At Least Once)= ack级别设置为-1+分区副本大于等于2+ISR里应答的最小副本数量大于等于2

消息积压如何处理?

如果不需要快速处理积压的消息,增加 consumer 即可
如果需要快速处理积压的消息,新建一个 topic, partition 高于当前 topic 的 partition,然后新建一个 consumer group 消费原 topic,消费逻辑就是把原消息发送到新 topic,原来的 consumer 去消费新 topic,这时候扩容 consumer 就能利用多机器提高消费速度从而消除消息积压

参考博客

[1]

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号