我已经建立了一个mirrormaker集群,它使用来自世界各地集群的主题。
问题是镜像集群(位于欧盟)和源集群(位于美国)之间的延迟造成了偏移延迟的巨大峰值。
镜像消耗9个主题,每个主题由24个分区组成。
镜像设置
/opt/kafka/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config /opt/kafka/config/us1.consumer.properties --num.streams 48 --producer.config /opt/kafka/config/glb.producer.properties --whitelist="a,b,c,d,e,f,g,h,i"
producer.properties设置
bootstrap.servers=localhost:9092
acks=-1
retries=2147483647
client.id=us.mm.producer
batch.size=200
linger.ms=10
我正在尝试增加批处理大小和引入linger来提高吞吐量,但到目前为止,我的努力都失败了。
什么是实现理想批量的最佳方法,并引入 linger.ms
有这么高的延迟率会有用吗?
抱歉,如果这似乎含糊不清,但我是新的Kafka,并调整服务器是很困难的。
2条答案
按热度按时间fafcakar1#
对于调整生产者设置,我建议从以下幻灯片中描述的方法开始:https://www.slideshare.net/jiangjieqin/producer-performance-tuning-for-apache-kafka-63147600
但是,由于mirror maker在目标集群中运行,我怀疑瓶颈可能是源集群(us->eu)的消耗,而不是生成与mirror maker位于同一位置的目标集群,如果我理解正确的话。
2lpgd9682#
首先-你看到了多少延迟?
延迟还取决于数据吞吐量。在我的例子中是每秒10k事件,4KB记录(记录的大小也很重要)。我观察到producer avg延迟为1.5 ms,最大延迟为3.5 ms,对于100k eps,我观察到producer avg延迟为3.5 ms,最大延迟接近30秒(非常高)
这取决于许多因素。总体延迟=网络延迟(可以使用ping-one-of-us框进行检查,它将为您提供rtt)+镜像生成器延迟(confluent replicator cliams,它引入了16ms,我们可以预期apache kafka镜像生成器会有或多或少的延迟)
同时检查,
我没有在你的配置中得到重试。是否启用任何压缩?