我已经设置了一个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的新手,调整服务器很难。
答案 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
我没有在您的配置中重试。 是否启用了压缩?