我们已经设置了一个三节点的kafka集群,并创建了一个具有复制因子3的主题。我们正在向该集群生成数据,并且看到一些消息花费的时间超过50ms。在进一步分析中,我们发现从经纪人那里获取响应存在延迟,因为我们已经为所有人设置了producer.acks。
将num.replica.fetchers
从1增加到4,我们看到了一些改进。但是每150条消息中就有1条消息超过50毫秒,因此我们使用的是同步生成器。但是,当num.replica.fetchers
为1时,每100条消息中有1条消息超过50毫秒。
每分钟我们将向集群发送50万条消息。
我们的机器配置:
RAM: 8 GB
Hard disk type: HDD
No. of processors: 32
这是否是卡夫卡生产商的最佳时间?是否需要调整任何属性以获得最小延迟。
此外,如果我们都拥有producer.acks
,那么最短的生产时间是什么?
答案 0 :(得分:0)
从理论上讲,您可以尝试压缩或减小批量大小以减小请求大小,从而更快
我认为没有必要将所有底座都设置好。
您可以将复制因子设置为3,将同步副本中的最小值设置为2,然后将acks设置为1,如果代理发生故障,您很有可能不会丢失任何数据。
另一个解决方案是仅在代理或与它们物理连接到同一交换机的机器上运行生产者代码,以减少网络延迟。