使用kafka mirrormaker时出现大量延迟

问题描述 投票:0回答:2

我已经设置了一个MirrorMaker集群,该集群使用来自世界各地的集群的主题。

问题是镜像集群(位于欧盟)和源集群(位于美国)之间的延迟会导致偏移滞后的大量峰值。

镜像消耗了9个主题,每个主题由24个分区组成。

Mirror Settings

/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"

The producer.properties Settings

bootstrap.servers=localhost:9092
acks=-1
retries=2147483647
client.id=us.mm.producer
batch.size=200
linger.ms=10

我正在努力增加批量大小并引入挥之不去以尝试增加吞吐量,但到目前为止,我的努力都失败了。

什么是理想的批量大小的最佳方法,并引入一个linger.ms将有用如此高的延迟率?

抱歉,如果这看起来模糊,但我是Kafka的新手,调整服务器很难。

apache-kafka latency kafka-producer-api mirroring
2个回答
0
投票

为了调整生产者设置,我建议按照本幻灯片中描述的方法开始:https://www.slideshare.net/JiangjieQin/producer-performance-tuning-for-apache-kafka-63147600

但是,由于镜像制造商正在目标集群中运行,我怀疑瓶颈可能是来自源集群(US-> EU)的消耗,而不是生成与镜像制造商位于同一位置的目标集群,如果我理解正确的话。


0
投票

首先 - 你看到多少延迟?

延迟还取决于数据吞吐率。在我的情况下,每秒10k事件,4 KB记录(记录的大小也很重要)。我观察到生产者平均延迟为1.5毫秒,最大延迟为3.5毫秒,有100万EPS,我观察到生产者平均延迟为3.5毫秒,最大延迟接近30秒(非常高)

这取决于很多因素。整体延迟=网络延迟(可以使用Ping的一个美国方框进行检查,它会给你RTT)+ Mirror Maker Latency(Confluent replicator cliams它引入了16ms,我们可以期待或多或少的Apache Kafka镜像制造商)

还检查一下,

Producer buffer memory - default is 32 MB.
acks recommendation is 1 (i.e. leader+ 1 follower) o.w it will more delays.
socket buffer
send.buffer.bytes
receive.buffer.bytes
num.network.threads
num.io.threads

我没有在你的配置中重试。是否启用了压缩?

© www.soinside.com 2019 - 2024. All rights reserved.