Debezium kafka 连接连接器未成功更新

Posted

技术标签:

【中文标题】Debezium kafka 连接连接器未成功更新【英文标题】:Debezium kafka connect connector not updating successfully 【发布时间】:2019-10-14 18:46:09 【问题描述】:

我正在尝试使用 Debezium 和 Kafka 进行 CDC。我已经在 table.whitelist 属性中注册了一个带有 3 个表的连接器,并且它工作正常。这是运行连接器的配置。

"name":"xoom-eds-extactor","config":"connector.class":"io.debezium.connector.mysql.MySqlConnector","database.user":"debezium","database.server.id":"1","database.hostname":"qa514dtc001.ord.qa001.xoom.com","database.password":"xoom123","database.history.kafka.bootstrap.servers":"eds-kafka1:9092","database.history.kafka.topic":"dbhistory.inventory","name":"xoom-eds-extactor","database.server.name":"MySQL-Database-Docker","database.port":"3306","include.schema.changes":"true","table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock","tasks":["connector":"xoom-eds-extactor","task":0],"type":"source"

现在我想更新连接器并从同一个数据库中再添加两个表。我正在使用以下命令和配置文件来更新连接器。

命令

curl -X PUT -H "Content-Type: application/json" --data @xoom-eds-extactor-conf.json "http://eds-kafka1:8083/connectors/xoom-eds-extactor/config"

配置 json


   "name":"xoom-eds-extactor",
   "connector.class":"io.debezium.connector.mysql.MySqlConnector",
   "database.hostname":"qa514dtc001.ord.qa001.xoom.com",
   "database.port":"3306",
   "database.user":"debezium",
   "database.password":"xoom123",
   "database.server.id":"1",
   "database.server.name":"MySQL-Database-Docker",
   "database.history.kafka.bootstrap.servers":"eds-kafka1:9092",
   "database.history.kafka.topic":"dbhistory.inventory",
   "include.schema.changes":"true",
"table.whitelist":"xoom_eds_extraction_src_db_mock.postal_code_mock,xoom_eds_extraction_src_db_mock.account_number_mock,xoom_eds_extraction_src_db_mock.credit_card_number_mock,xoom_eds_extraction_src_db_mock.ip_address_details_mock,xoom_eds_extraction_src_db_mock.university_details_mock"

这执行成功,但是当我列出 Kafka 主题时,仅存在最后 ​​3 个主题,未添加 2 个新主题。

MySQL-Database-Docker
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.account_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.credit_card_number_mock
MySQL-Database-Docker.xoom_eds_extraction_src_db_mock.postal_code_mock
__consumer_offsets
connect-configs
connect-offsets
connect-status
dbhistory.inventory

有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

嗨,阿曼!您使用的是什么版本的 Debezium? 【参考方案1】:

据我所知,有一个与此问题相关的旧的待处理 PR,它应该已在 0.9.1 版本中修复。但如果您使用的是旧版本,则只需按照以下步骤操作即可。

添加新表,但不要写入它们 关闭连接器 更改过滤器配置并将快照模式设置为“schema_only_recovery” 删除(或重命名)现有数据库历史主题 重启连接器;这将重新创建 DB 架构的内部历史记录,然后从之前记录的偏移量继续流式传输 开始写入新表

至少这是我们所做的(我们仍在使用0.8.2)。

来源:debezium-google-group.

【讨论】:

以上是关于Debezium kafka 连接连接器未成功更新的主要内容,如果未能解决你的问题,请参考以下文章

Debezium Kafka 连接器 mongodb

如何使用 debezium mysql 连接器 kafka 进行初始快照加载?

Kafka Connect Debezium postgres

在远程 MSK kafka 集群上使用 kafka 连接 mongoDB debezium 源连接器

Debezium Kafka 连接器 mongodb:将 kafka 连接器连接到 mongodb 时出错

Debezium 消息与 kafka-connect sink 连接器期望的格式兼容