我正忙于学习kafka,特别是使用接收器连接器(jdbc)将数据从kafka主题发送到mysql的下游元素。
我已经在这样的Dockerfile文件中,使用jdbc连接器和mysql驱动程序构建了一个由融合式kafka连接基映像生成的映像:
FROM confluentinc/cp-kafka-connect-base
RUN confluent-hub install --no-prompt confluentinc/kafka-connect-jdbc:5.4.1
ENV MYSQL_DRIVER_VERSION 5.1.39
RUN curl -k -SL "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MYSQL_DRIVER_VERSION}.tar.gz" \
| tar -xzf - -C /usr/share/java/kafka/ --strip-components=1 mysql-connector-java-5.1.39/mysql-connector-java-${MYSQL_DRIVER_VERSION}-bin.jar老实说,我在文档中有点迷失了,我想包括水槽的配置,但我不知道如何包含它,也不知道如何将它复制到哪里。我已经创建了接收器配置文件,但不确定将其放在何处。作为映像构建的一部分,还是在运行kafka连接容器时?
最终的游戏是为这个连接器创建一个头盔部署,但我还没有。
任何帮助都会非常感谢,因为我了解卡夫卡和卡夫卡连接。
发布于 2020-03-19 16:56:15
由于在分布式模式(即一般情况下最好的选择)中使用Kafka,所以将连接器配置作为REST调用传递。
下面是一个JDBC接收器配置示例--您需要修改它以适应源主题、串行化等:
curl -X PUT http://localhost:8083/connectors/sink_postgres_foo_00/config -H "Content-Type: application/json" -d '{
"connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
"connection.url": "jdbc:mysql://mysql-host:3306/",
"connection.user": "user",
"connection.password": "pw",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter.schemas.enable": "true",
"tasks.max": "1",
"topics": "foo",
"auto.create": "true",
"auto.evolve":"true",
"pk.mode":"none"
}'如果要在容器实例化时传递连接器配置,可以将其嵌入开始命令中,该命令应启动工作人员,等待其可用,然后传递配置。下面是一个例子。也见https://rmoff.net/2018/12/15/docker-tips-and-tricks-with-ksql-and-kafka/。
https://stackoverflow.com/questions/60760474
复制相似问题