#apache-kafka #apache-kafka-connect
Вопрос:
В настоящее время я тестирую Mirrormaker для репликации данных между двумя кластерами. К сожалению, похоже, что конфигурация производителя не используется отдельными производителями, как это описано в https://github.com/apache/kafka/blob/trunk/connect/mirror/README.md.
Мой файл конфигурации упрощен:
clusters=INPUT,BACKUP
INPUT.consumer.compression.type=lz4
BACKUP.producer.compression.type=lz4
INPUT->BACKUP.enabled = true
INPUT->BACKUP.topics=mytopic.*
...
Тогда вывод журнала при запуске mirrormaker2 ( connect-mirror-maker.sh mirrormaker.properties
) не показывает эту опцию:
INFO ProducerConfig values:
...
compression.type = none
...
Используемая версия Кафки-2.7.1.
Как я могу правильно передать настройки, чтобы производитель правильно сжимал? Мне также нужно передать несколько других настроек, но как только это сработает, это должно сработать и для других настроек.
Ответ №1:
Два потенциальных решения:
- Включить
connector.client.config.override.policy
в файле свойств работников mm2. Вам нужно следовать https://docs.confluent.io/platform/current/connect/references/allconfigs.html#override-the-worker-configuration внимательно. - Запустите кластер Kafka Connect и создайте
MirrorSourceConnector
MirrorCheckpointConnector
его один за другим с переопределенными конфигурациями производителя. Вам все равно нужно будет обратиться к официальной документации по слиянию, приведенной выше. Я выбрал этот подход, и он работает.
Комментарии:
1. Спасибо @wenli-wan, я попробовал использовать решение 1 выше, но, похоже, оно все еще не использует этот вариант. Я попробовал несколько разных способов (добавление префикса с ВВОДОМ/РЕЗЕРВНЫМ КОПИРОВАНИЕМ и т. Д.), Но Безрезультатно. Не могли бы вы опубликовать полную конфигурацию для первого подхода, я хочу, чтобы она была простой и не обязательно запускала кластер подключения.
2. Я выбрал 2-й подход, и он работает, но у меня не было возможности попробовать 1-й.