如何在 Strimzi 中使用 Kafka 连接

Posted

技术标签:

【中文标题】如何在 Strimzi 中使用 Kafka 连接【英文标题】:How to use Kafka connect in Strimzi 【发布时间】:2021-03-03 07:22:18 【问题描述】:

我正在使用带有 srimzi 运算符的 Kafka,我创建了一个 Kafka 集群,并且还使用 yml 文件部署了 Kafka 连接。但在此之后我完全空白下一步该做什么。我读到 Kafka 连接用于将数据从源复制到 Kafka 集群或从 Kafka 集群复制到另一个目的地。 我想使用 Kafka 连接将数据从文件复制到 Kafka 集群的任何主题。 任何人都可以帮助我如何做到这一点,我正在共享用于创建 Kafka 连接集群的 yml 文件。

apiVersion: kafka.strimzi.io/v1beta1

kind: KafkaConnect

metadata:

  name: my-connect-cluster

#  annotations:

#  # use-connector-resources configures this KafkaConnect

#  # to use KafkaConnector resources to avoid

#  # needing to call the Connect REST API directly

#    strimzi.io/use-connector-resources: "true"

spec:

  version: 2.6.0

  replicas: 1

  bootstrapServers: my-cluster-kafka-bootstrap:9093

  tls:

    trustedCertificates:

      - secretName: my-cluster-cluster-ca-cert

        certificate: ca.crt

  config:

    group.id: connect-cluster

    offset.storage.topic: connect-cluster-offsets

    config.storage.topic: connect-cluster-configs

    status.storage.topic: connect-cluster-status

@kubeclt create -f kafka-connect.yml -n strimzi

在 Kafka connect 的 pod 处于运行状态后,我不知道下一步该做什么。请帮帮我。

【问题讨论】:

【参考方案1】:

Kafka Connect exposes a REST API,因此您需要从 Connect pod 公开该 HTTP 端点

我读到 Kafka 连接用于将数据从源复制到 Kafka 集群或从 Kafka 集群复制到另一个目的地。

这是一个应用程序,但听起来你想要 MirrorMaker2 来代替它


如果您不想使用 REST API,请取消注释此行

#    strimzi.io/use-connector-resources: "true"

并使用另一个 YAML 文件来配置 Connect 资源 as shown here for Debezium。见kind: "KafkaConnector"

【讨论】:

感谢您的帮助...但是我对此很陌生,因此很难理解文档...一旦我使用 yml 创建了 Kafka 连接和 Kafka 连接器,您能告诉我吗?你建议的。接下来要做什么......我的意思是如何从一个文件中读取数据并通过终端将其查看到 Kafka 主题......我的 Kafka 集群部署在 kubernetes 集群上。 k8s 中的 Kafka Connect 不能用于消费文件,除非您执行到连接容器中。但是您可以使用任何 kafka 客户端将数据生成到主题中。然后,如前所述,您需要 MirrorMaker,而不是 Connect 来将该数据发送到另一个 Kafka 集群中的另一个主题,您将在其中编写消费者进程......实际上并不需要 Stimzi 来执行任何操作 我很困惑....我的老师说使用Strimzi算子并在本地机器上使用CRD部署kafka集群,kafka connect、kafka bridge和kafka mirror maker是列出的主题... .我使用CRD创建了kafka集群,之后我想学习如何使用kafka connect ...我创建了kafka connect集群,它的pod处于运行状态...之后我不知道该怎么做.. ..我可以在我的本地机器上使用 Kafka 连接器和 Kafka 镜像制造器吗?..我还读到 Kafka 连接器也是需要的,但我不知道如何使用它。 我在这里很困惑...实际上我的老师告诉我使用 strimzi 部署 kafka 集群并了解了 kafka connect、kafka bridge 和 kafka mirror maker ...并在本地使用 CRD yml 部署它们机器...我使用 CRD 创建了 kafka 集群并生产和消费数据并理解了它的工作原理....但是现在我正在阅读有关 kafka connect 的信息,我使用 CRD 创建了 kafka connect 集群,但在那之后我完全空白了下一步该做什么要了解它的确切工作原理......你能告诉我我该怎么做才能在我的本地机器上使用它。 我已经回答了...您需要另一个 KafkaConnector crd 并取消注释我提到的行。您是否阅读了 Debezium 示例?【参考方案2】:

看看这个simple example from scratch。不是你想要做的,但非常接近。我们正在使用 kafka-console-producer.sh 向主题发送消息,并使用文件接收器连接器使用它们。

该示例还展示了如何通过创建您自己的自定义连接图像来包含其他连接器,基于 Strimzi 图像。对于涉及外部系统的更复杂的示例,需要此步骤。

【讨论】:

以上是关于如何在 Strimzi 中使用 Kafka 连接的主要内容,如果未能解决你的问题,请参考以下文章

Strimzi / Kafka Connect 找不到我的插件

Kafka Connect 使用带有 Strimzi 的 REST API 和种类:KafkaConnector

Strimzi:MirrorMaker 2.0 连接到 IBM EventStream

使用 Strimzi 对 Kafka 的外部访问

Strimzi kafka 出口商 kafka_consumergroup_members 指标

Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息