当前位置: 首页 > 知识库问答 >
问题:

启动大量的kafka流会在列表中重载第一个kafka经纪人

龙昊焱
2023-03-14

我有15个节点的kafka集群:kafka1.com:9092,kafkan.com:9092...,kafka10.com:9092

另外,我有10个节点的应用程序,它消耗大约100个主题(从2到240个分区)。对于每个主题,应用程序使用一些转换逻辑创建单独的KafkaStreams对象实例。

在我拥有如此数量的消费者节点之前,我没有遇到任何问题,但是随着部署期间节点数量的增加,这个应用程序开始大量加载kafka集群。但是,如果整个集群在部署期间平均损失了2%的CPU,代理列表kafka1.com:9092中的第一个节点损失了大约50-60%的CPU,并且密钥度量请求处理程序线程空闲的平均时间分数对于该代理来说变得非常低。

如果kafka在负载下(巨大的吞吐量),或者根本没有处理消息,这种行为是完全相同的。

我尝试使用设置,但每次都看到相同的度量=(我甚至将kafka-clients更新到2.3.0版本Broker是1.1.1版本

我认为它可能与元数据获取有关,因为我认为Kafka Streams(消费者、生产者、管理客户端)没有其他方式从列表中的第一个代理请求另一个数据。

共有1个答案

曾明诚
2023-03-14

如果没有具体的细节和监控指标,就很难判断到底什么是根本原因。

然而,从经验来看,这些是Kafaka载荷分布不均的主要原因:

>

  • Kafka代理节点之间分区分布不均匀

    这通常与不均匀的分区分布一起发生。基本上,如果领袖节点不堪重负,Kafaka会决定重新选举领袖。但是,由于分区分布不均--这无济于事,导致更多的领导者重新选举,从而--增加集群的负载。

    解决这个问题的方法是增加复制因子(连同分区重新分配)。

    这看起来可能有悖于直觉(因为增加复制因子会增加复制开销)。然而,这暗示Kafka在更多的节点之间分配数据,从而帮助卸载不堪重负的节点。

  •  类似资料:
    • Kafka初学者和融合包。我想启动多个代理,以便了解主题。可以通过此设置完成- 此设置可以在服务器配置文件中定义,也可以在脚本中定义。 但是我该如何运行它们呢?。如果我只是向引导服务器添加多个endpoint,就会出现以下错误: Java . lang . illegalargumentexception:要求失败:每个侦听器必须有不同的名称,listeners: PLAINTEXT://:909

    • 我有两个< code>kafka 0.10.1的代理集群,之前在我的开发服务器上正确运行< code>zookeeper 3.3.6。 我最近尝试将broker版本升级到最新的,但没有开始。配置没有太大变化 谁能告诉我可能会出什么问题吗。为什么经纪人没有起步? 已更改服务器。代理服务器1上的属性 已更改代理服务器2上的server.properties 注意: 1.Zookeeper正在两台服务器

    • 在Flink中,我执行以下代码: 我推出3次同样的工作。 如果我用一个代理执行这段代码,它工作得很好,但是用3个broke(在3个不同的机器上)只读取一个分区。 null

    • 我是Kafka的新手,动物园管理员和Storm。我我们的环境,我们有一个Kafka代理连接到多个动物园管理员。让生产者将消息发送到特定主题并在一个代理上将分区到多个动物园管理员与多个代理分配给多个动物园管理员相比是否有优势?

    • 我正在尝试仅为代理间kerberos配置Kafka代理。然而,由于它似乎也想通过Kerberos连接到Zookeeper,所以我似乎总是遇到错误。我目前还没有设置任何Zookeeper键。 我的Kafka代理 JAAS 配置如下: 服务器属性 我用上述配置得到的错误如下: 换句话说,我只想要经纪人到经纪人的 kerberos 和经纪人 - 动物园管理员的普通SASL_SSL。这可能吗?

    • 我有一个Kafka Streams应用程序版本-0.11,它从很少的主题中获取数据,并将数据连接到另一个主题中。 我在一些jira问题上读到过,清理流可能有助于修复问题。但是每次启动Kafka流应用程序时清理流是正确的解决方案还是补丁?此外,流清理会延迟应用程序的启动,对吗? 注意:每次启动Kafka Streams应用程序时,在调用Streams.start()之前是否需要调用Streams.c