我正在尝试使用here中所述的配置来构建Debezium MySQL Kafka Connect。在我的本地Kafka设置上,auto.create.topics.enable
设置为true
。
这是我的连接器JSON配置的样子:-
{
"name": "MySqlConnector",
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"tasks.max": 1,
"database.allowPublicKeyRetrieval": "true",
"database.user": "sambhav",
"database.server.id": "654",
"database.history.kafka.bootstrap.servers": "192.168.1.4:9092",
"database.history.kafka.topic": "schema-changes.inventory", **
"database.server.name": "dbserver1", *
"database.port": "3306",
"database.hostname": "192.168.1.4",
"database.password": "password",
"database.whitelist": "samsoft"
}
部署连接器后,我看到与表的Kafka主题一起创建了另外两个主题,它们的名称分别是在database.server.name
和database.history.kafka.topic
配置中指定的值。
连接器文档中提到
如果您选择使用架构更改事件,请使用架构更改主题,而不使用数据库历史记录主题。
这是什么意思?
问题
一旦我尝试在auto.create.topics.enable
设置为false
的环境中部署相同的设置,连接器任务将找不到名为dbserver1
的主题,因为我只创建了一个主题{{ 1}}(为schema-changes.inventory
配置而配置。
database.history.kafka.topic
和database.server.name
设置创建的2个kafka主题的区别和目的是什么?这两个设置都是必需的。