Kafka Connect 加载插件失败

Posted

技术标签:

【中文标题】Kafka Connect 加载插件失败【英文标题】:KafkaConnect fails to load plugin 【发布时间】:2022-01-23 20:37:30 【问题描述】:

我正在使用 Strimzi 在 K8s 上部署 KafkaCluster、KafkaConnect。

Strimzi 算子集群镜像:quay.io/strimzi/operator:0.26.1 Kafka 镜像:quay.io/strimzi/kafka:0.26.1-kafka-3.0.0。

我正在尝试设置连接到 Postgres DB 的 KafkaConnector。

这些是我的步骤:

    从此图像“quay.io/strimzi/kafka:0.26.1-kafka-3.0.0”构建一个新的 KafkaConnect。这个新图像有我从这个链接“https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-deployment”下载的插件

    我在 K8s 上运行这个新镜像,然后执行到 KafkaConnect 容器中。它有正确的插件('/opt/kafka/plugins/debezium/debezium-connector-postgres'):

    我创建了引用类 'io.debezium.connector.postgresql.PostgresConnector' 的 KafkaConnector:

kind: "KafkaConnector"
metadata:
  name: dev-approvalflowservice-connector
  labels:
    strimzi.io/cluster: postgres-connect-cluster-1
spec:
  class: io.debezium.connector.postgresql.PostgresConnector
  tasksMax: 2
  config:
    database.hostname: 10.14.101.204
    database.port: "5432"
    database.user: "debezium"
    database.password: "debezium"
    database.dbname: "approvalflowservice"
    database.server.name: "approvalflowservice"
    plugin.name: "pgoutput"
    slot.name: "approvalflowserviceslot"
    truncate.handling.mode: "include"
    table.include.list: "public.approval_flow"
    问题是 KafkaConnect 无法加载我已经添加到新 KafkaConnect 映像中的插件。来自 KafkaConnect 的日志:log

更新

    我尝试在新的 KafkaConnect 映像中更改插件的位置 ('/opt/kafka/plugins/debezium-connector-postgres'): 问题一样:log

谢谢大家。

【问题讨论】:

【参考方案1】:

在你的日志中,你有

Loading plugin from: /opt/kafka/plugins/debezium

但是,由于您的插件已安装到子文件夹中,因此没有 Postgres 类被列为已加载。

确保插件路径在您定义的路径和 JAR 可用的位置之间只有一个文件夹。例如安装到/opt/kafka/plugins/debezium-connector-postgres

您还可以在创建之前向 Connect API 发出GET /connector-plugins HTTP 请求,以列出集群的可用连接器。

【讨论】:

谢谢。我按照您的建议进行了尝试,但仍然存在相同的问题。 也许该文件夹的文件权限已关闭?例如,如果图像以非根用户身份运行,则无法读取该文件夹的文件(并且您的图像显示您以kafka 用户身份运行ls)。你也可以尝试在 k8s 之外运行镜像来验证它的行为。否则,您应该可以在这里报告 Debezium 问题 issues.redhat.com/projects/DBZ/issues

以上是关于Kafka Connect 加载插件失败的主要内容,如果未能解决你的问题,请参考以下文章

MySql 查询在 Kafka-connect 中失败

Kafka Connect 如何安装 Connect 插件

Kafka Connect,插件路径

Strimzi / Kafka Connect 找不到我的插件

Kafka 与 OCI 流服务连接失败

KAFKA SINK CONNECT: WARN 批量请求 167 失败。重试请求