Kafka Mirror Maker - задержка агрегируется, затем каждые 60 секунд она обнуляется, а затем снова и снова - PullRequest
1 голос
/ 04 августа 2020

Я использую Kafka MirrorMaker на основе изображения Kafka http://apache.cbox.biz/kafka/2.4.1/kafka_2.13-2.4.1.tgz. Моя проблема в том, что независимо от того, что я пробовал, MirrorMaker агрегирует задержку на 10 разделах топи c в течение 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

На уровне производителя я играл с:

  1. batch.size
  2. linger.ms
  3. max .request.size
  4. попытался добавить свойства нижних 4/5, чтобы сократить время между пакетами, не повезло.

Некоторые советы были бы очень признательны.

I Я не уверен, есть ли эффективная задержка и сообщения остаются на стороне потребителя в течение этих 60 секунд, или просто задержка обновляется каждые 60 секунд, а сообщения тем временем реплицируются ...

С уважением, OvivO

1 Ответ

1 голос
/ 08 августа 2020

Я нашел правильную конфигурацию и выяснил, почему потребитель совершал смещения каждые 60 секунд. enable.auto.commit = false - это была моя конфигурация, а затем потребитель фиксируется каждые 60 секунд.

Если я разверну потребителя mirrormaker с: enable.auto.commit = true auto.commit.interval.ms = 22000, он фиксирует и очищает задержку каждые 22 секунды (22000 мс). Однако я не уверен, что автоматическая фиксация безопасна, чтобы сообщения не терялись.

...