使用kafka mirrormaker时会出现大量延迟

cgvd09ve  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(679)

我已经建立了一个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,并调整服务器是很困难的。

fafcakar

fafcakar1#

对于调整生产者设置,我建议从以下幻灯片中描述的方法开始:https://www.slideshare.net/jiangjieqin/producer-performance-tuning-for-apache-kafka-63147600
但是,由于mirror maker在目标集群中运行,我怀疑瓶颈可能是源集群(us->eu)的消耗,而不是生成与mirror maker位于同一位置的目标集群,如果我理解正确的话。

2lpgd968

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镜像生成器会有或多或少的延迟)
同时检查,

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

我没有在你的配置中得到重试。是否启用任何压缩?

相关问题