使用kafka mirrormaker时出现大量延迟

时间:2017-07-05 17:26:32

标签: apache-kafka latency kafka-producer-api mirroring

我已经设置了一个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.ms会对如此高的延迟率有用吗?

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

首先-您看到多少延迟?

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

这取决于许多因素。 总延迟= 网络延迟(可以使用Ping的“美国”框进行检查,这将为您提供RTT) + Mirror Maker Latency (汇合复制器的运行时间缓慢,引入了16毫秒,我们可以期望Apache Kafka Mirror Maker或多或少地具有这种功能)

还要检查

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

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