【问题标题】:springboot: implement mysql cdcspring boot:实现mysql cdc
【发布时间】:2021-03-25 11:32:02
【问题描述】:

我正在尝试使用 spring-boot 捕获我的 MySQL 本地数据库上的任何更改 但是当我运行我的项目时,我得到Unable to instantiate connector class io.debezium.connector.mysql.mysqlconnector

有人有什么建议可以帮助我吗?

这是我的配置代码:

 @Bean
public io.debezium.config.Configuration studentConnector() {
    return io.debezium.config.Configuration.create()
            .with("connector.class", "io.debezium.connector.mysql.mysqlconnector")
            .with("offset.storage",  "org.apache.kafka.connect.storage.FileOffsetBackingStore")
            .with("offset.storage.file.filename", "/cdc/offset.dat")
            .with("offset.flush.interval.ms", 60000)
            .with("name", "student-postgres-connector")
            .with("database.server.name", studentDBHost+"-"+studentDBName)
            .with("database.hostname", studentDBHost)
            .with("database.port", studentDBPort)
            .with("database.user", studentDBUserName)
            .with("database.password", studentDBPassword)
            .with("database.dbname", studentDBName)
            .with("table.whitelist", STUDENT_TABLE_NAME)
            .build();
}

这是我的应用程序日志错误

java.lang.ClassNotFoundException: io.debezium.connector.mysql.mysqlconnector
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_181]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_181]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_181]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_181]
at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:666) ~[debezium-embedded-1.3.1.Final.jar:1.3.1.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]

【问题讨论】:

标签: java spring-boot debezium


【解决方案1】:

由于您要使用MySqlConnector,您需要将docker镜像从debezium/postgres(不包含debezium mysql连接器)更改为debezium/connect

【讨论】:

  • 我更改了 docker 映像并得到了一些错误。我应该在容器中运行 spring 项目吗? @IskuskovAlexander
  • 这取决于你。你可以这样做,你的 spring 应用程序将由 docker compose 自动构建和运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
  • 2015-07-18
  • 2020-06-01
  • 2019-05-30
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多