我有一个用例,需要将关系数据库中的数据更改发送到kafka主题中。
我能够编写一个简单的JDBC程序,该程序对特定时间段内的更改执行一组查询,并使用KafkaTemplate(spring框架提供的包装器)将数据写入kafka-topic。
如果我使用kafka-connect做同样的事情,那就是编写一个源连接器。我会得到什么好处或间接费用(如果有的话)?
答案 0 :(得分:2)
第一件事是您拥有“ ...编写一个简单的JDBC程序...”,并注意有关数据库和Kafka主题的编写逻辑。 Kafka Connect为您完成了此任务,您的业务应用程序仅需写入数据库。借助Kafka Connect,您不仅拥有故障转移处理,并行性,扩展性……还为您提供了许多便利,而当您在数据库上进行写操作(例如发生某些事情而您却没有能够写Kafka主题等等。
答案 1 :(得分:2)
今天,您想使用一组从一个数据库到Kafka主题的查询从一个数据库中提取信息,并编写一些定制的代码来做到这一点。
明天您要使用第二个数据库,或者要更改Kafka中数据的序列化格式,或者要扩展摄取范围,或者要具有高可用性。或者,您想添加将数据从Kafka流式传输到另一个目标的功能,也可以从其他位置提取数据。并且,使用仅以JSON表示的标准化配置模式集中管理所有内容。哦,您希望它可以被其他无需阅读代码但可以仅使用Apache Kafka的通用API(这就是Kafka Connect的API)的人轻松维护。
如果您能自己完成所有这些操作,那么您刚刚重新发明了Kafka Connect :)
在我的卡夫卡峰会上,我广泛讨论了这一问题:“从零到使用卡夫卡连接的英雄”,您可以找到online here