kafka是否可以使用interclient.jar与interbase数据库连接。即使将其放在正确的文件夹中,我也无法在ubundu系统中进行连接。
这是我创建连接器的POST命令。
curl -X POST -H "Content-Type: application/json" --data "{ \"name\": \"ib_connector\",\"config\": { \"connector.class\": \"io.confluent.connect.jdbc.JdbcSourceConnector\", \"tasks.max\": 1,\"connection.url\": \"jdbc:interbase://remoteip:3050/TEST2.gdb?user=SYSDBA&password=masterkey\",\"mode\": \"timestamp+incrementing\", \"incrementing.column.name\": \"id\",\"timestamp.column.name\": \"modified\", \"topic.prefix\": \"test-interbase-\", \"poll.interval.ms\": 1000 } }" http://localhost:8083/connectors.
我已将JDBC连接器interclient.jar
文件放在/usr/share/java/kafka-connect-jdbc
中。
在docker-compose.yml
中,插件路径设置为CONNECT_PLUGIN_PATH:'/usr/share/java,/etc/kafka-connect/jars'
。
我也有.env
个文件,其中
KAFKA_CONNECT_JARS_PATH=/usr/share/java/kafka-connect-jdbc/
和CLASS_PATH=usr/share/java/kafka-connect-jdbc/
。
我收到的错误消息如下。
{"error_code":400,"message":"Connector configuration is invalid and contains the following 2 error(s):\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:interbase://remoteip:3050/TEST2?user=SYSDBA&password=masterkey for configuration Couldn't open connection to jdbc:interbase://remoteip:3050/TEST2?user=SYSDBA&password=masterkey\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:interbase://remoteip:3050/TEST2?user=SYSDBA&password=masterkey
答案 0 :(得分:0)
如果您使用的是Docker,则将本地文件系统上的JAR放入/usr/share/java
不会使Docker在没有卷映射的情况下使用它。为避免混淆,建议将主机文件移到其他位置。
KAFKA_CONNECT_JARS_PATH
对Confluent Docker映像也没有任何意义。
在本地创建一些其他本地目录。将JDBC JAR放入其中,然后将一个卷添加到Compose文件中,以指向容器中的JDBC连接位置
volumes:
- /path/to/your_folder:/usr/share/java/kafka-connect-jdbc/lib:ro
ls /path/to/your_folder
显示您要使用的JDBC驱动程序,并且如果您安装了Java,则可以运行jar -tf /path/to/your_folder/example.jar
来验证是否有一个JDBC Driver类正在尝试加载到该文件中。 。
当我尝试使用MSSQL JDBC驱动程序
时,该设置已经生效blog post