Apache kafka 卡夫卡设计问题-卡夫卡连接与自有消费者/制作人

Apache kafka 卡夫卡设计问题-卡夫卡连接与自有消费者/制作人,apache-kafka,kafka-consumer-api,apache-kafka-connect,kafka-producer-api,Apache Kafka,Kafka Consumer Api,Apache Kafka Connect,Kafka Producer Api,我需要了解何时使用Kafka connect与开发者编写的自有消费者/制作人。我们正进入汇合平台。此外,为了实现容错设计,我们是否必须从所有代理运行消费者/生产者代码(jar文件)?卡夫卡连接通常用于将外部源连接到卡夫卡,即生产/消费到外部源到外部源 使用连接器可以执行的任何操作都可以通过 生产者+消费者 现成的连接器只方便将外部源连接到Kafka,而无需开发人员编写底层代码 要记住的几点 如果源和接收器都是同一个Kafka集群,那么连接器就没有意义 如果要从数据库执行更改数据捕获(CDC)并将

我需要了解何时使用Kafka connect与开发者编写的自有消费者/制作人。我们正进入汇合平台。此外,为了实现容错设计,我们是否必须从所有代理运行消费者/生产者代码(jar文件)?

卡夫卡连接通常用于将外部源连接到卡夫卡,即生产/消费到外部源到外部源

使用连接器可以执行的任何操作都可以通过 生产者+消费者

现成的连接器只方便将外部源连接到Kafka,而无需开发人员编写底层代码

要记住的几点

  • 如果源和接收器都是同一个Kafka集群,那么连接器就没有意义
  • 如果要从数据库执行更改数据捕获(CDC)并将其推送到Kafka,则可以使用数据库源连接器
  • 资源限制:卡夫卡连接是一个单独的过程。因此,请仔细检查您可以在资源和开发易用性之间进行哪些权衡
  • 如果您正在编写自己的连接器,那么它是很好的,除非有人尚未编写它。如果您使用的是第三方连接器,则需要检查它们的维护情况和/或支持是否可用
  • 我们是否必须运行来自所有代理的消费者/生产者代码(jar文件)

    不要在代理上运行客户端代码。允许为代理进程保留所有内存和磁盘访问

    何时使用卡夫卡连接与自己的消费者/产品

    根据我的经验,这些因素应该考虑在内

  • 无论如何,您都计划部署和监视Kafka Connect,并且有可用的资源来执行此操作。同样,这些不会在代理机器上运行
  • 您不打算经常更改连接器代码,因为您必须重新启动整个连接器JVM,它将运行不需要重新启动的其他连接器
  • 您无法将自己的生产者/消费者代码集成到现有应用程序中,或者只是希望有一个更简单的生产者/消费者循环
  • 最好将结构化数据不绑定到特定的二进制格式
  • 编写您自己的或使用社区连接器是经过良好测试的,并且可以根据您的用例进行配置
  • 与原始生产者/消费者API相比,Connect的容错选项有限,缺点是代码更多,具体取决于所使用的其他库


    注意:Confluent平台仍然是相同的Apache Kafka

    Kafka Connect: Kafka Connect是一个开源平台,它基本上包含两种类型:Sinksource。卡夫卡连接用于从/到数据库到/从卡夫卡取/放数据。卡夫卡连接有助于使用卡夫卡的各种其他系统。它还有助于跟踪从DB到Kafka的变化(如其中一个答案Changed Data Capture(CDC)中所述)。系统维护偏移量,以便将数据从该特定偏移量读/写到Kafka或任何其他数据库

    有关更多详细信息,请参阅

    生产者/消费者:
    制作人和消费者只是一个终端系统,他们使用卡夫卡制作和消费主题到/从卡夫卡。它们用于我们想要向消费者群体中的不同消费者广播数据的地方。这种系统还为消费者群体保持数据的滞后和偏移


    不,在运行Kafka connect时,您不需要运行任何生产者/消费者。如果要检查数据是否丢失,可以在运行源连接器时运行使用者。对于接收器连接器,通过运行特定的select查询,可以在数据库中验证已经生成的数据。

    @cricket\u 007如何典型地添加到语句中?它有有效的用途。但不在同一个集群内谢谢@cricket_007的详细回复。Kafka connect的分布式模式是否不能确保容错设计?另外,如果我们不使用Kafka connect,那么消费者/生产者应该如何运行以实现容错?您期望什么样的容错?运行多个使用者应用程序与连接分布式应用程序的作用相同,但您只能运行与主题分区相同数量的实例容错意味着不运行单个实例,而是运行来自不同服务器的多个实例。我们为生产者提供了哪些选项?您可以使用运行常规消费者应用程序的多台服务器来完成相同的任务,如前所述。生产者可伸缩性取决于您的输入源,但容错仅限于单个实例hi@cricket_007,我的源是一个日志文件。加快将数据推送到Kafka Broker的过程有哪些选择?