Производитель зеркал не копирует смещения.И источник, и пункт назначения могут иметь разное количество разделов и разные смещения.
Если вы хотите точно обеспечить доставку на DC2 ровно без потери данных, вам необходимо правильно настроить файл provider и consumer.properties.
Существуют допустимые сценарии, когда потребитель потребляет некоторую запись из источника, но производителю не удается записать в место назначения.В этом случае, если для «enable.auto.commit» задано значение true, оно будет периодически фиксировать смещение, даже если событие не было записано в месте назначения.Поэтому, чтобы избежать этого, он должен быть установлен в false.
Убедитесь, что для потери данных нет:
В customer.properties: enable.auto.commit=false
установлено
В производителе добавьте следующие свойства:
max.in.flight.requests.per.connection=1
retries=Int.MaxValue
acks=-1
block.on.buffer.full=true
Для mirrorMaker установите --abortOnSendFail
Вот несколько рекомендаций для производителя зеркал.
https://community.hortonworks.com/articles/79891/kafka-mirror-maker-best-practices.html
Что касается потребителей, работающих в целевом кластере, им все равно, сколько записей потребляется из исходного кластера.У них есть свои собственные consumer_offsets.Таким образом, при первом запуске он начинается со смещения 0, а затем при следующем запуске будет считываться последнее использованное смещение.
Если вы хотите читать со смещения 0, вы всегда можете установить « auto.offset.reset » в «самое раннее»