87.2. plugins


连接器插件是一组文件,用于定义连接到某些类型的外部系统所需的实施。容器镜像所需的连接器插件必须使用 KafkaConnect 自定义资源的 .spec.build.plugins 属性进行配置。每个连接器插件都必须有一个在 Kafka Connect 部署中唯一的名称。另外,必须列出插件工件。这些工件由 Apache Kafka 的 Streams 下载,添加到新容器镜像中,并在 Kafka Connect 部署中使用。连接器插件工件也可以包含其他组件,如(de) serializers。每个连接器插件都下载到一个单独的目录中,以便不同的连接器和它们的依赖项被正确地进行了沙盒处理。每个插件必须配置至少一个 工件

带有两个连接器插件的插件配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins: 
1

      - name: connector-1
        artifacts:
          - type: tgz
            url: <url_to_download_connector_1_artifact>
            sha512sum: <SHA-512_checksum_of_connector_1_artifact>
      - name: connector-2
        artifacts:
          - type: jar
            url: <url_to_download_connector_2_artifact>
            sha512sum: <SHA-512_checksum_of_connector_2_artifact>
  #...
Copy to Clipboard Toggle word wrap

1
(必需)连接器插件及其工件列表。

Apache Kafka 的流支持以下工件类型:

  • 直接使用的 JAR 文件
  • TGZ 归档(已下载并解包)
  • ZIP 存档,它们已下载并解包
  • Maven 工件(使用 Maven 协调)
  • 其他直接下载和使用的工件
重要

Apache Kafka 的流不会对下载工件进行任何安全扫描。为了安全起见,您应该首先手动验证工件,并配置 checksum 验证,以确保在自动构建和 Kafka Connect 部署中使用相同的工件。

使用 JAR 工件

JAR 工件代表一个 JAR 文件,该文件已下载并添加到容器镜像中。要使用 JAR 工件,请将 type 属性设置为 jar,并使用 url 属性指定下载位置。

另外,您可以指定工件的 SHA-512 校验和。如果指定了,Apache Kafka 的 Streams 会在构建新容器镜像时验证工件的校验和。

JAR 工件示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: jar 
1

            url: https://my-domain.tld/my-jar.jar 
2

            sha512sum: 589...ab4 
3

          - type: jar
            url: https://my-domain.tld/my-jar2.jar
  #...
Copy to Clipboard Toggle word wrap

1
(必需)工件的类型。
2
(必需)下载工件的 URL。
3
(可选) SHA-512 校验和来验证工件。

使用 TGZ 工件

TGZ 工件用于下载使用 Gzip 压缩压缩的 TAR 存档。TGZ 工件可以包含整个 Kafka Connect 连接器,即使由多个不同文件组成。在构建新容器镜像时,TGZ 工件由 Streams for Apache Kafka 自动下载并解包。要使用 TGZ 工件,请将 type 属性设置为 tgz,并使用 url 属性指定下载位置。

另外,您可以指定工件的 SHA-512 校验和。如果指定了,Apache Kafka 的 Streams 会在解包并构建新容器镜像前验证 checksum。

TGZ 工件示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: tgz 
1

            url: https://my-domain.tld/my-connector-archive.tgz 
2

            sha512sum: 158...jg10 
3

  #...
Copy to Clipboard Toggle word wrap

1
(必需)工件的类型。
2
(必需)下载存档的 URL。
3
(可选) SHA-512 校验和来验证工件。

使用 ZIP 工件

ZIP 工件用于下载 ZIP 压缩存档。使用 ZIP 工件的方式与上一节中描述的 TGZ 工件相同。唯一的区别是指定 type: zip 而不是 type: tgz

使用 Maven 工件

Maven 工件用于指定连接器插件工件作为 Maven 协调。Maven 协调识别插件工件和依赖项,以便可以从 Maven 存储库获取它们。

注意

连接器构建过程必须可以访问 Maven 存储库,才能将工件添加到容器镜像中。

Maven 工件示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: maven 
1

            repository: https://mvnrepository.com 
2

            group: <maven_group> 
3

            artifact: <maven_artifact> 
4

            version:  <maven_version_number> 
5

  #...
Copy to Clipboard Toggle word wrap

1
(必需)工件的类型。
2
(可选)要从中下载工件的 Maven 存储库。如果没有指定存储库,则默认使用 Maven Central 存储库
3
(必需)Maven 组 ID。
4
(必需)Maven 工件类型。
5
(必需)Maven 版本号。

使用其他 工件

其他 工件代表下载并添加到容器镜像中的任何类型的文件。如果要在生成的容器镜像中为工件使用特定名称,请使用 fileName 字段。如果没有指定文件名,则该文件会根据 URL 哈希命名。

另外,您可以指定工件的 SHA-512 校验和。如果指定了,Apache Kafka 的 Streams 会在构建新容器镜像时验证工件的校验和。

other 工件示例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: other  
1

            url: https://my-domain.tld/my-other-file.ext  
2

            sha512sum: 589...ab4  
3

            fileName: name-the-file.ext  
4

  #...
Copy to Clipboard Toggle word wrap

1
(必需)工件的类型。
2
(必需)下载工件的 URL。
3
(可选) SHA-512 校验和来验证工件。
4
(可选)文件存储在生成的容器镜像中的名称。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat