我们使用ApacheKafka2.2版本与5个代理。我们每天得到5000万个事件,但我们正在达到高卡夫卡cpu使用率。我们正在使用默认的生产者/消费者/代理设置。
我对演出有一些疑问;
我们有不同的kafka流应用程序,它们进行聚合,或者加入操作来传递丰富的消息。我们所有的kafka流应用程序都由以下设置组成:
当然,可能会有内部的拓扑主题。我们正在将我们的工人机器扩展到至少5个应用程序中。因此,每个实例在大多数情况下都会为一个分区策略寻找一个线程。
但是,除了拓扑优化之外,我们还可以在默认设置上做些什么吗?
除了卡夫卡流应用程序,我们正在使用spring生产者/消费者。但是就像我说过的,我们使用的是默认设置。例如,我们是一个接一个地生产事件的生产者一方。
我们的吞吐量不够快,cpu使用率也很高。如果我们关闭一些kafka流应用程序,代理负载正在减少。所以我的问题是;
如果同步副本是正确的,复制因子为3,那么是否对代理施加了太多的负载?我不想丢失或复制prod环境上的消息,所以我的流应用程序必须包含精确的--一旦为真,但是spring应用程序在没有kafka流的情况下做得很好。
我希望减少系统中代理的总体cpu使用量。
如果我在生产者端使用批处理生成器,减少可容错工作人员的最小同步副本,我的cpu使用率会减少吗?
我想不出可选的办法。任何想法都会帮助我,为什么我的经纪人CPU使用率非常高,像%80-90天时间。
是什么原因导致代理的cpu使用率过高?
发布于 2020-08-01 17:04:39
您需要提供关于您的拓扑/集群的更详细的信息。例如;
max.poll.interval.ms中完成他们的工作?如果是这样的话,它们将经常被重新平衡,而经纪商确实有一份重新平衡操作的工作,尽管规模很小,如果你有很多组一直在进行再平衡,那么这个工作量就会很大。linger.ms配置。这可能影响生产者的吞吐量。我不认为replication.factor和min.insync.replicas配置发挥了重要作用,但在不了解所有变量的情况下,不能肯定地说什么。
此外,如果您安装了监视工具,您应该检查它们是否有异常。
https://stackoverflow.com/questions/63204859
复制相似问题