Apache kafka 启动大量卡夫卡流会大量加载列表中的第一个卡夫卡代理
我有15个节点的卡夫卡集群:Apache kafka 启动大量卡夫卡流会大量加载列表中的第一个卡夫卡代理,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我有15个节点的卡夫卡集群: kafka1.com:9092,kafkaN.com:9092…,kafka10.com:9092 此外,我还有10个节点的应用程序,它消耗大约100个主题(从2到240个分区)。对于每个主题,应用程序使用一些转换逻辑创建KafkaStreams对象的单独实例 在我拥有如此多的使用者节点之前,我没有任何问题,但随着部署期间节点数量的增加,该应用程序开始大量加载kafka集群。但是,如果整个集群在部署过程中平均损失约2%的CPU,那么代理列表中的第一个节点kafka1
kafka1.com:9092,kafkaN.com:9092…,kafka10.com:9092
此外,我还有10个节点的应用程序,它消耗大约100个主题(从2到240个分区)。对于每个主题,应用程序使用一些转换逻辑创建KafkaStreams对象的单独实例
在我拥有如此多的使用者节点之前,我没有任何问题,但随着部署期间节点数量的增加,该应用程序开始大量加载kafka集群。但是,如果整个集群在部署过程中平均损失约2%的CPU,那么代理列表中的第一个节点kafka1.com:9092
将损失大约50-60%的CPU和关键指标请求处理程序线程空闲的平均时间分数
对这个经纪人来说变得很低
如果kafka处于负载(巨大吞吐量)状态,或者根本不处理消息,则此行为完全相同
我尝试过使用设置,但每次都看到相同的指标=(
我甚至将卡夫卡客户端更新为2.3.0
版本
代理是1.1.1
version
我认为这可能和元数据获取有关,因为我看不到Kafka Streams(消费者、生产者、管理员客户端)从列表中的第一个代理请求另一个数据的其他方式
但是为什么它会如此频繁地加载broker?如果没有具体的细节和监控指标,很难准确地说出根本原因是什么 然而,根据经验,卡夫卡荷载分布不均的主要原因如下:
kafka1.com:9092
可能是集群中大部分分区的领导者,因此提高了CPU/磁盘/网络使用率(因为大部分消费者连接到it+复制开销)
这个问题的解决办法是另外,如果集群在没有实际输入消息的情况下总体繁忙,这通常是由于Kafka试图用偏移量和ACK同步所有副本造成的。不幸的是,在我的情况下分区分布正常,但有许多thx需要回答。