【发布时间】:2020-04-17 03:00:47
【问题描述】:
我需要了解何时使用 Kafka 连接与开发人员编写的自己的消费者/生产者。我们正在获得 Confluent 平台。另外,为了实现容错设计,我们是否必须从所有代理运行消费者/生产者代码(jar 文件)?
【问题讨论】:
标签: apache-kafka kafka-consumer-api apache-kafka-connect kafka-producer-api
我需要了解何时使用 Kafka 连接与开发人员编写的自己的消费者/生产者。我们正在获得 Confluent 平台。另外,为了实现容错设计,我们是否必须从所有代理运行消费者/生产者代码(jar 文件)?
【问题讨论】:
标签: apache-kafka kafka-consumer-api apache-kafka-connect kafka-producer-api
Kafka connect 通常用于将外部源连接到 Kafka,即生产/消费 to/from外部源from/to Kafka。
你可以用连接器做的任何事情都可以通过 生产者+消费者
现成可用的连接器仅便于将外部源连接到 Kafka,而无需开发人员编写低级代码。
需要记住的几点..
【讨论】:
我们是否必须从所有代理运行消费者/生产者代码(jar 文件)?
不要在代理上运行客户端代码。为代理进程保留所有内存和磁盘访问。
何时使用 Kafka 连接与自己的消费者/生产者
根据我的经验,应该考虑这些因素
与原始生产者/消费者 API 相比,Connect 的容错选项有限,缺点是代码较多,具体取决于所使用的其他库
注意:Confluent Platform 还是一样的 Apache Kafka
【讨论】:
Kafka 连接: Kafka Connect 是一个开源平台,基本上包含两种类型:Sink和Source。 Kafka Connect 用于获取/放置数据从/到数据库到/从 Kafka。 Kafka 连接有助于将各种其他系统与 Kafka 一起使用。它还有助于跟踪从 DB 到 Kafka 的更改(如答案之一 Changed Data Capture (CDC) 中所述)。系统维护偏移量,以便从该特定偏移量读取/写入数据到 Kafka 或任何其他数据库。
更多详情可以参考https://docs.confluent.io/current/connect/index.html
生产者/消费者:
Producer 和 Consumer 只是一个终端系统,它们使用 Kafka 来生产和消费主题 to/from Kafka。它们用于我们想要将数据广播给消费者组中的各种消费者的地方。这种系统还为消费者群体维护数据的滞后和偏移。
不,您不需要在运行 Kafka 连接时运行任何生产者/消费者。如果您想检查没有数据丢失,您可以在运行源连接器时运行消费者。在 Sink 连接器的情况下,可以通过运行其特定的选择查询在您的数据库中验证已经生成的数据。
【讨论】: