Я использую коннектор debezium для захвата изменений из базы данных MySQL и перемещения его в Kafka. Я использую Docker. Контейнер для MySQL, другой для коннектора и еще один для Kafka.
Когда я останавливаю docker (docker-compose down) и запускаю docker еще раз, я обычно получаю следующую ошибку:
org.apache.kafka.connect.errors.ConnectException: The db history topic is missing. You may attempt to recover it by reconfiguring the connector to SCHEMA_ONLY_RECOVERY
Я прочитал решение этой проблемы, которое указано на официальной странице:
https://debezium.io/blog/2018/03/16/note-on-database-history-topic-configuration/
Но я следовал этим шагам и думаю, что моя конфигурация в порядке:
log.retention.bytes = -1
log.retention.hours = 168
log.retention.minutes = null
log.retention.ms = -1
Обратите внимание, что если я установлю log.retention.ms
на -1, то log.retention.minutes
и log.retention.hours
не будут использоваться (как объясняется в официальной документации), тогда я решил проблемы с размером хранения и временем хранения.
Итак, кто-нибудь знает, почему я получаю эту ошибку?
Edit:
Я использую версию 0.8.
Тогда это часть окончательной университетской работы, я думаю, что не могу поделиться полным файлом docker-compose (извините), прежде чем опубликовать его в моем университете, но я могу показать вам важные вещи, связанные с этим проблема. Я не думаю, что это проблема конфигурации, потому что у меня нет ничего особенного в моем docker-compose.
mysql:
image: mysql/5.7:configured (Little changes like enabling queries...)
environment:
- MYSQL_ROOT_PASSWORD=debezium
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
volumes:
- "sql_Data:/var/lib/mysql"
- "sql_LogError:/var/log/mysql"
kafka:
image: debezium/kafka:0.8
depends_on:
- zookeeper
environment:
- HOST_NAME=xxxx
- ADVERTISED_HOST_NAME=xxxx
- ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_CREATE_TOPICS="events:1:1"
- KAFKA_LOG_RETENTION_MS=-1
volumes:
- "kafka_Data:/kafka/data"
- "kafka_Log:/kafka/logs"
- "kafka_Conf:/kafka/config"
connect:
image: debezium/connect:0.8
depends_on:
- zookeeper
- kafka
- mysql
environment:
- HOST_NAME=xxxx
- ADVERTISED_HOST_NAME=xxxx
- BOOTSTRAP_SERVERS=xxxx:9092
- GROUP_ID=1
- CONFIG_STORAGE_TOPIC=my_connect_configs
- OFFSET_STORAGE_TOPIC=my_connect_offsets
- STATUS_STORAGE_TOPIC=my_connect_statuses
volumes:
sql_Data:
sql_LogError:
kafka_Data:
kafka_Log:
kafka_Conf:
А остальные части - это только сети или не относящиеся к делу вещи.