Kafka Mirror Maker - 聚合延迟,然后每 60 秒将其归零一次,然后重新开始
Kafka Mirror Maker - Lag is aggregated and then each 60 seconds it is zeroed and then all over again
我正在使用基于 Kafka http://apache.cbox.biz/kafka/2.4.1/kafka_2.13-2.4.1.tgz 镜像的 Kafka MirrorMaker。
我的问题是,无论我尝试什么,MirrorMaker 都会在一个主题的 10 个分区上聚合滞后 60 秒,然后滞后在一秒钟内归零,因为消息显然不是那么多,然后滞后再次增长 60 秒。我希望每 10 秒将消息和滞后归零一次,但无法实现,尽管我主要使用 mirrormaker 生产者配置文件。
consumer.props:
enable.auto.commit=false
client.id=mirror_maker_consumer
exclude.internal.topics=true
group.id=MirrorMaker
bootstrap.servers=${SOURCE_BOOTSTRAP_SERVERS_LIST}
partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor
producer.props:
acks=all
bootstrap.servers=${TARGET_BOOTSTRAP_SERVERS}
client.id=mirror_maker_consumer_telemetry
max.in.flight.requests.per.connection=1
retries=5
batch.size = 10
buffer.memory = 3000
linger.ms = 5
max.request.size = 1000
max.block.ms = 3000
receive.buffer.bytes = -1
send.buffer.bytes = -1
transaction.timeout.ms = 22000
我玩过的制作人级别:
- batch.size
- linger.ms
- max.request.size
- 尝试添加底部 4/5 属性以缩短批次之间的时间,但没有成功。
一些建议将不胜感激。
我不确定这 60 秒内是否存在有效滞后和消息在消费者端保留,只是滞后每 60 秒更新一次,同时消息被复制...
此致,
OvivO
我找到了正确的配置以及消费者每 60 秒提交一次偏移量的原因。
enable.auto.commit=false - 这是我的配置,然后消费者每 60 秒提交一次。
如果我部署 mirrormaker 消费者:
enable.auto.commit=真
auto.commit.interval.ms = 22000
它每 22 秒(22000 毫秒)提交并清除延迟。
但是,我不确定自动提交是否安全,不会丢失任何消息。
我正在使用基于 Kafka http://apache.cbox.biz/kafka/2.4.1/kafka_2.13-2.4.1.tgz 镜像的 Kafka MirrorMaker。 我的问题是,无论我尝试什么,MirrorMaker 都会在一个主题的 10 个分区上聚合滞后 60 秒,然后滞后在一秒钟内归零,因为消息显然不是那么多,然后滞后再次增长 60 秒。我希望每 10 秒将消息和滞后归零一次,但无法实现,尽管我主要使用 mirrormaker 生产者配置文件。
consumer.props:
enable.auto.commit=false
client.id=mirror_maker_consumer
exclude.internal.topics=true
group.id=MirrorMaker
bootstrap.servers=${SOURCE_BOOTSTRAP_SERVERS_LIST}
partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor
producer.props:
acks=all
bootstrap.servers=${TARGET_BOOTSTRAP_SERVERS}
client.id=mirror_maker_consumer_telemetry
max.in.flight.requests.per.connection=1
retries=5
batch.size = 10
buffer.memory = 3000
linger.ms = 5
max.request.size = 1000
max.block.ms = 3000
receive.buffer.bytes = -1
send.buffer.bytes = -1
transaction.timeout.ms = 22000
我玩过的制作人级别:
- batch.size
- linger.ms
- max.request.size
- 尝试添加底部 4/5 属性以缩短批次之间的时间,但没有成功。
一些建议将不胜感激。
我不确定这 60 秒内是否存在有效滞后和消息在消费者端保留,只是滞后每 60 秒更新一次,同时消息被复制...
此致, OvivO
我找到了正确的配置以及消费者每 60 秒提交一次偏移量的原因。 enable.auto.commit=false - 这是我的配置,然后消费者每 60 秒提交一次。
如果我部署 mirrormaker 消费者: enable.auto.commit=真 auto.commit.interval.ms = 22000 它每 22 秒(22000 毫秒)提交并清除延迟。 但是,我不确定自动提交是否安全,不会丢失任何消息。