【问题标题】:Huge amounts of lag when using kafka mirrormaker使用 kafka mirrormaker 时出现大量延迟
【发布时间】:2022-05-08 06:47:48
【问题描述】:

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

【问题讨论】:

  • 在同一 WAN 和同一主机上使用 FTP 或其他工具的最大吞吐量是多少?与您使用 MM 看到的吞吐量结果相比如何?换句话说,你怎么知道这甚至是 Kafka 问题,而不是带宽或 TCP LFN 问题?

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


【解决方案1】:

对于调整生产者设置,我建议从遵循此幻灯片中描述的方法开始: https://www.slideshare.net/JiangjieQin/producer-performance-tuning-for-apache-kafka-63147600

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

【讨论】:

    【解决方案2】:

    首先 - 您看到多少延迟?

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

    这取决于许多因素。 总延迟 = 网络延迟(可以使用 Ping 一个美国盒子进行检查,它会给你 RTT) + Mirror Maker Latency(Confluent 复制器声称它引入了 16 毫秒,我们可以或多或少地期待 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
    

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

    【讨论】:

      猜你喜欢
      • 2020-12-22
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多