当前位置: 首页 > 知识库问答 >
问题:

将数据从kafka复制到mysql,无法使用DOcker和Debezium连接到JDBCSinkConnector

潘安邦
2023-03-14

大家好,我正在使用debezium捕获Mongo中的更改,并将它们推送到mysql中。我正在使用以下链接https://github.com/debezium/debezium-examples/tree/master/unwrap-mongodb-smt我正在把postgres数据库替换为mysql数据库,但我无法这样做。

这是我修改后的jdbc-sink.json,我使用mysql url连接。

{
    "name" : "jdbc-sink",
    "config" : {
        "connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector",
        "tasks.max" : "1",
        "topics" : "customers",
        "connection.url" : "jdbc:mysql://localhost:3306/inventorydb?user=user&password=password",
        "auto.create" : "true",
        "auto.evolve" : "true",
        "insert.mode" : "upsert",
        "delete.enabled": "true",
        "pk.fields" : "id",
        "pk.mode": "record_key",
        "transforms": "mongoflatten",
        "transforms.mongoflatten.type" : "io.debezium.connector.mongodb.transforms.ExtractNewDocumentState",
        "transforms.mongoflatten.drop.tombstones": "false"
    }
}

但我在运行时遇到以下错误

curl -i -X POST -H "Accept:application/json" -H  "Content-Type:application/json" http://localhost:8083/connectors/ -d @jdbc-sink.json

HTTP/1.1 500内部服务器错误日期:周三,06十一月2019 08:13:39格林尼治标准时间内容类型:应用程序/json内容长度: 3404服务器:码头(9.4.18. v20190429)

{“error_code”:500,“message”:“找不到任何实现连接器的类,以及名称与io.confluent.connect.jdbc.JdbcSinkConnector匹配的类,可用的连接器有:PluginDesc”{klass=class io.debezium.connector.mongodb.MongoDbConnector,name='io.debezium.connector.mongodb.MongoDbConnector',version='1.0.0-SNAPSHOT',encodedVersion=1.0.0-SNAPSHOT,type=source,typeName='source',location='file:/kafka/connect/debezium connector mongodb/'},PluginDesc{klass=class io.debezium.connector.mysql.MySqlConnector,name='io.debezium.connector.mysql.MySqlConnector',version='1.0.0-SNAPSHOT',encodedVersion=1.0.0-SNAPSHOT,type=source,typeName='source',location='file:/kafka/connect/debezium connector mysql/',PluginDesc{klass=class io.debezium.connector.oracle.OracleConnector,name='io.debezium.connector.oracle.OracleConnector',version='1.0.0-SNAPSHOT',encodedVersion=1.0.0-SNAPSHOT,type=source,typeName='source',location='file:/kafka/connect/debezium connector-oracle/',PluginDesc{klass=class io.debezium.connector.postgresql.PostgresConnector,name='io.debezium.connector.postgresql.PostgresConnector',version='1.0.0-SNAPSHOT',encodedVersion=1.0.0-SNAPSHOT,type=source,typeName='source',location='file:/kafka/connect/debezium connector-postgres,PluginDesc{klass=class io.debezium.connector.sqlserver.SqlServerConnector,name='io.debezium.connector.sqlserver.SqlServerConnector',version='1.0.0-SNAPSHOT',encodedVersion=1.0.0-SNAPSHOT,type=source,typeName='source',location='file:/kafka/connect/debezium connector sqlserver/',PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector,name='org.apache.kafka.connect.file.FileStreamSinkConnector',version='2.3.0',encodedVersion=2.3.0,type=sink,typeName='sink',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector,name='org.apache.kafka.connect.file.FileStreamSourceConnector',version='2.3.0',encodedVersion=2.3.0,type=source,typeName='source',location='classpath',PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector,name='org.apache.kafka.connect.tools.MockConnector',version='2.3.0',encodedVersion=2.3.0,type=connector,typeName='connector',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector,name='org.apache.kafka.connect.tools.MockSinkConnector',version='2.3.0',encodedVersion=2.3.0,type=sink,typeName='sink',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector,name='org.apache.kafka.connect.tools.MockSourceConnector',version='2.3.0',encodedVersion=2.3.0,type=source,typeName='source',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector,name='org.apache.kafka.connect.tools.SchemaSourceConnector',version='2.3.0',encodedVersion=2.3.0,type=source,typeName='source',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector,name='org.apache.kafka.connect.tools.VerifiableSinkConnector',version='2.3.0',encodedVersion=2.3.0,type=source,typeName='source',location='classpath'},PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector,name='org.apache.kafka.connect.tools.VerifiableSourceConnector',version='2.3.0',encodedVersion=2.3.0,type=source,typeName='source',location='classpath'}

我知道有些人找不到io。汇合的。连接jdbc。JdbcSinkConnector,但是我应该如何/以及应该在哪里保存这样一个jar呢。

谢啦

共有2个答案

穆理
2023-03-14

使用以下命令下载JAR,并将其保存在插件目录中:

curl -sO https://packages.confluent.io/maven/io/confluent/kafka-connect-jdbc/10.0.0/kafka-connect-jdbc-10.0.0.jar
夏意蕴
2023-03-14

您还没有在Kafka Connect中提供接收器连接器,请参阅命令docker-comush up--build-d用于开始使用JDBC接收器连接器构建新的连接映像https://github.com/debezium/debezium-examples/blob/master/unwrap-mongodb-smt/debezium-jdbc/Dockerfile#L10

 类似资料:
  • 我试图将我的spring应用程序连接到debezium/kafka:0.10,但没有成功。最初应用程序使用Wurstmeister/kafka图像,但现在我引入了debezium的一个新功能,并且希望两者只使用一个kafka图像。我不能把应用程序连接到debezium kafka或debezium连接到wurstmeister kafka。有人知道这两个图像是否都可以使用一个图像?欢迎任何想法:)

  • 我创建了一个docker compose文件,将MySql连接到SpringBoot应用程序。但我得到了这个错误: 我尝试在本地机器中使用docker默认ip运行Spring Boot应用程序,同时在这个docker-compose.yml文件中只运行MySql容器,结果运行得非常好。但当我尝试docker编写文件时。我知道这个错误。

  • 我试图连接到mysql数据库从docker图像。然而,这是投掷错误。 下面是我正在使用的docker图像。https://hub.docker.com/_/mysql/ 下面是我用来运行docker映像的命令。 以下是命令的输出 如果我使用docker检查IP并ping该IP,则显示IP不可访问。 如果我尝试使用和我遇到以下错误。 无法加载身份验证插件“缓存\u sha2\u密码”。

  • #用于连接jdbc的java代码 导入java。sql。*;公共类abc{ #我正在使用的驱动程序 #用popsql写的查询这是一个mysql查询 }

  • 我正在尝试从Spring Boot应用程序连接到mySQL数据库。然而,当我试图运行它时,它显示出错误。 我如何解决这个问题? 错误 从我的文件中添加代码片段 pom。xml 应用属性 堆栈跟踪 我还没有在sql中手动创建表,因为我认为spring.jpa.hibernate.ddl-Auto=date应该这样做

  • 我想做的是,从我的spring boot应用程序连接到Docker中的mysql数据库。每个都在各自的容器中。 但是我一定有什么问题,因为我做不到。 为了保持简单: 应用程序属性: MySQL的docker组合: 很简单,对吧?数据库我从开始: 到目前为止,一切似乎都很顺利。 现在我已经启动了db,对于应用程序来说,这是它的docker组件。yml: 对于它的Dockerfile,我使用Linux