Настройка Kafka HA с помощью MirrorMaker - как справиться с этим во Flink? - PullRequest
2 голосов
/ 24 марта 2020

Мы настраиваем MirrorMaker 2.0 для Kafka. Если я правильно понимаю, смещения topi c не равны в реплицируемом кластере. Это не проблема для обычного приложения Kafka, поскольку группы потребителей тоже копируются. Flink хранит смещения Кафки внутренне в состоянии - я полагаю, что после перезапуска задания с состоянием все может go не так. Есть ли способ настроить Flink, чтобы мы могли восстанавливаться после сбоя кластера на реплицированном кластере Kafka? Я думаю, что мы должны как-то мигрировать государство, но у нас нет опыта в этом.

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

MirrorMaker 2 управляет синхронизацией c смещений через внутреннюю топи c и использует временную метку сообщений для учета синхронизации и дрейфа в случае сбоя.

0 голосов
/ 25 марта 2020

Я не думаю, что миграция штата поможет в этом случае. Я вижу два способа решения этой проблемы, но ни один из них не является идеальным:

  1. Технически, вы можете отключить сохранение смещений на контрольной точке и включить enable.auto.commit для потребителя, но я думаю, что это немного опасно с точки зрения возможной потери данных.
  2. Вы можете расширить FlinkKafkaConsumer и изменить функцию open, чтобы она игнорировала смещения, сохраненные в состоянии, и вместо этого использовала сборщик для извлечения смещений. Я думаю, это должно работать нормально, поскольку смещения передаются в Kafka на контрольной точке, если контрольная точка включена.
...