【问题标题】:Kafka Connect - Possible to use if I don't have direct access to the Kafka Cluster?Kafka Connect - 如果我无法直接访问 Kafka 集群,是否可以使用?
【发布时间】:2020-10-08 00:23:29
【问题描述】:

我是 Kafka Connect 的新手。

场景:我们想要导出存储在 Kafka 中的多个(好数量 > 400)主题中的数据,并将该数据转储到 Elastic Search 索引中。我们公司的 Kafka 是 Confluent Kafka 并且是 Kerberized。我可以通过 Kafka API 编写生产者和消费者,因为我们知道代理并拥有 keytab 文件。

建议使用 Kafka-Connect,但由于它是多租户集群,运维团队可能无法提供直接访问,甚至无法运行插件安装命令。我们有自己的托管虚拟机,我们在其中部署应用程序实例。

问题 - 是否可以通过在我们的 VM 上安装连接器插件而不是在 Confluent Kafka 上安装它们来以分布式模式运行 Kafka-Connect?我们可以在 Confluent Kafka 上不运行任何命令的情况下运行连接器工作吗?我已准备好将 kafka-connect 连接器插件放在我的所有 VM 实例上。

更新

我们不允许在 kafka-connect 集群上做 put 请求(创建一个新的连接器实例),所以仍然可以使用 kafka-connect 吗?如果是,那么我们是否需要运行自己的 Kafka 并将引导服务器指定为生产 kafka 集群?找不到任何这样做的视频/文章。

【问题讨论】:

    标签: apache-kafka apache-kafka-connect confluent-platform


    【解决方案1】:

    是的,这是可能的。事实上,在生产部署中,您通常不会将 Kafka Connect 直接安装到 Kafka 代理上。您可以查看reference architecture here 了解更多信息。

    Kafka Connect 作为 Kafka 代理的独立进程运行,称为 Kafka ConnectWorker。每个 Worker 都是一个 JVM 进程,您使用 Kafka 集群的详细信息进行部署和配置,它连接到该集群并充当生产者/消费者(取决于它是否是您正在创建的源/接收器)。 This talk 解释了一些运行时的基础知识。

    因此,您配置一台或多台运行 Kafka Connect 的机器,为它们提供相同的组 ID,以便它们形成一个集群(Kafka Connect 工作人员),它们连接到您的 Kafka 集群(就像任何生产者/消费者应用程序一样与集群分开),并在您的 Kafka Connect 工作人员上安装所需的插件。

    要向 Elasticsearch 加载数据,您有 Kafka Connect Elasticsearch plugin,您可以观看 here 的教程。

    【讨论】:

    • 一个问题,我没有使用 Docker,我在哪里指定我的应用程序主机将在哪里形成我的连接集群?我是否需要从我的每个应用程序主机运行 curl 命令来实现这一点?
    • 您在 Kafka Connect 工作程序属性文件中指定它
    • BTW StackOverflow 礼节是如果您认为答案是:-)
    • 感谢罗宾的帮助。我已经更新了。请让我知道是否有任何文章/视频可以在我们甚至没有访问权限的生产集群之外创建 kafka-connect 集群。
    • 这将向您展示如何部署 Kafka Connect:docs.confluent.io/current/connect/userguide.html。如有更多问题,请开始一个新问题。我相信我已经回答了您原来的问题,因此您应该将其标记为已回答:)
    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2023-01-25
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多