Kafka设计问题-Kafka Connect与自己的消费者/生产者

问题描述 投票:0回答:2

我需要了解何时使用Kafka connect与开发人员编写的自己的消费者/生产者。我们正在获得Confluent平台。为了实现容错设计,我们还必须运行所有代理的使用者/生产者代码(jar文件)吗?

apache-kafka kafka-consumer-api apache-kafka-connect kafka-producer-api
2个回答
0
投票

我们必须从所有经纪人处运行消费者/生产者代码(jar文件吗?

不要在代理上运行客户端代码。让所有内存和磁盘访问权都保留给代理进程。

何时使用Kafka Connect与自己的消费者/产品

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

  1. 无论如何,您都计划部署和监视Kafka Connect,并拥有可用的资源。同样,这些不在代理计算机上运行
  2. 您不打算频繁更改连接器代码,因为您必须重新启动整个连接器JVM,而该JVM将运行不需要重新启动的其他连接器
  3. 您无法将自己的生产者/消费者代码集成到现有应用程序中,或者只是希望有一个更简单的生产/消费循环
  4. 最好不要将结构化数据绑定到特定的二进制格式
  5. 编写您自己的脚本或使用社区连接器已经过测试,可以根据您的使用案例进行配置

与原始生产者/消费者API相比,Connect具有有限的容错选项,但缺点是代码更多,取决于所使用的其他库

注意:Confluent平台仍与Apache Kafka相同


0
投票

[Kafka connect通常用于将外部源连接到Kafka,即连接到生产/消费 至/自外部源自/至 Kafka。

您可以通过连接器完成的任何操作都可以通过生产者+消费者

易于使用的连接器仅易于将外部源连接到Kafka,而无需开发人员编写底层代码。

一些要记住的要点..

  1. 如果源和接收器都是相同的Kafka群集,则连接器没有意义
  2. 如果正在从数据库进行更改数据捕获(CDC),并将其推送到Kafka,则可以使用数据库源连接器。
  3. 资源限制:Kafka连接是一个独立的过程。因此,请仔细检查您可以在资源和易于开发之间进行权衡的地方。
  4. 如果您正在编写自己的连接器,那将是一件好事,除非有人尚未编写它。如果您使用的是第三方连接器,则需要检查它们的维护情况和/或支持是否可用。
© www.soinside.com 2019 - 2024. All rights reserved.