我最近一直在学习Kafka,以便使用python客户端(pykafka)使用框架为我们的工作进程发送,接收和存储消息。我们的信息很短。
据我所知,Kafka-Connect存在大量数据的I / O,但在什么情况下使用Connect工具会变得更好?您需要为Kafka-Connect发送/接收多少数据?您认为Kafka-Connect最有用的功能是什么?
另外,您对Kafka使用了哪些其他框架或库?
谢谢!
答案 0 :(得分:2)
Kafka Connect无法提高性能 - Connect框架正在使用生产者和消费者API。
Connect旨在将Kafka与其他数据系统连接,其中支持次要键/值转换(转换)。该框架提供了开箱即用的容错和可扩展性。许多现成的连接器已经可用(例如HDFS接收器,JDBC源,许多其他)。如果需要,您可以构建自己的连接器。您可以详细了解Connect here。
答案 1 :(得分:0)
Kafka连接器潜在的问题之一是它们通常是由第三方提供的,因此您必须进行一些研究才能找到并评估它们,以检查它们是否适合您的目的。但是,它们可能比简单的DIY消费者/生产者对更加强大和可扩展。例如。他们分配了工作人员来改善可伸缩性和故障转移。
以下是我写的一些涵盖Kafka Connect的博客,您可能会觉得有用。
答案 2 :(得分:0)
kafka connect通常用于同步操作。我们可以将这种同步选项用于文件,数据库等。对于文件同步选项,您可以参考下面提到的链接。
https://www.tutorialkart.com/apache-kafka/apache-kafka-connector/
在kafka connect中,我们使用两种模式执行操作:1.独立2.分布式
当我们要对文件执行同步操作时使用独立。当我们要对数据库执行同步操作时,可以使用分布式(可以同步存在于两个不同数据库中的两个表,但两个表的列都属于同一类型)
它包含两个属性,我们将在它们的基础上执行操作:1。源属性2.接收器属性 例如。假设如果我们要对文件执行操作,那么我们要在这两个属性中都进行更改,然后运行命令或使用rest进行更改,同时使用java代码执行操作。 (在此属性中,我们添加文件名和主题名称并以connect开头)源文件包含一些数据以及运行命令时: bin / windows / connect-standalone.bat config / connect-standalone.properties config / connect-file-source.properties
运行上述命令后,它将从connect-file-source.properties中提到的文件中读取数据。如果不存在,那么它将创建文件。
•运行消费者命令以使用文件中的数据
。\ bin \ windows \ kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
•“在以下运行”命令创建接收器文件
bin / windows / connect-standalone.bat config / connect-standalone.properties config / connect-file-source.properties config / connect-file-source.properties
最后,如果我们打开接收器文件并检查数据,我们将能够看到源文件中存在的相同数据。
类似地,我们通过在Distributed.properties,JDBC源和接收器属性中进行更改,对使用分布式模式的表同步操作进行了更改
我们还可以使用kafka-connect rest选项执行同步操作。
答案 3 :(得分:0)
编写代码从 Kafka 读取数据并将其插入数据库可能需要一两天,但是如果您需要处理以下内容:
然后可能需要几个月才能正确。如果您使用 Kafka Connector 实施数据复制,则您的连接器会插入工作人员中,这些工作人员可以处理许多您不必担心的复杂操作问题(如上所述)。
参考书:《卡夫卡:权威指南》