Kafka一些生产环境常见的问题
这篇没什么顺序,就是单纯的罗列一下常见的问题和可能遇到的问题,问题之间没有关联,后续有新的问题再补充
1. Kafka消息积压,消费能力不足怎么办:
1. 如果是消费能力不足的话,可以提高对应Topic的分区数,同时提升消费者组(Consumer Group)内消费者的数量,要注意分区数等于消费者组内消费者的数量,否则提高分区没有任何意义 2. 另一种是下游消费间隔较长导致的,这种情况可以提高每次拉取数据的数量,这个时间计算一定要保证(拉取数据条数/处理时间<生产速度),否则就会积压
2. 生产环境Kafka集群的配置
这个问题其实仅供参考,因为硬件配置不同的情况下效率差距还是挺大的 1. 我们生产服务器给Kafka的配置是,CPU是28核心56线程,每个节点五块2T的SSD,五个节点,集群之间带宽是万兆,硬件水平较高所以比较猛 2. 因为集群带宽和IO的问题几乎不会成为瓶颈,所以ISR队列基本上都很稳定,不会频繁进出。同时减少数据落盘的频率
下面是生产环境的server.properties配置
Broker参数配置(server.properties)
1、网络和io操作线程配置优化
# broker处理消息的最大线程数(默认为3)
num.network.threads=57
# broker处理磁盘IO的线程数
num.io.threads=56
2、log数据文件刷盘策略
# 每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=100000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=10000
3、日志保留策略配置
# 保留时间
# log.cleaner.delete.retention.ms=
# 保留两天
log.retention.hours=48
4、Replica相关配置
offsets.topic.replication.factor:3