我试图了解Connect可以给您带来什么,而Streams却不能。我们在应用程序的一部分中希望消耗一个主题并写入mariadb。
我可以用一个简单的处理器来完成。阅读记录,存储在状态存储中,然后批量插入mariadb。
为什么这是个坏主意? JDBC Sink Connector会给您带来什么?
答案 0 :(得分:3)
好问题!所有这些都是使用正确的工具完成工作。 Kafka Connect的特定用途是源系统和Kafka之间的流集成,或者从Kafka到其他系统(包括RDBMS)的流集成。
Kafka Connect给您带来什么?
这并不是说您不能在Kafka Streams中执行此操作,但是当Kafka为您提供开箱即用的代码时,您最终将不得不自己编写很多代码连接。您可以可以使用Consumer API和一堆定制代码来执行Kafka Streams API给您的流处理,类似地,您可以使用Kafka Streams来获取数据从Kafka主题存储到数据库中-但是为什么呢?
如果需要在将数据发送到接收器之前进行转换,则建议的模式是将转换与发送分离。在Kafka Streams(或KSQL)中转换数据,并将其写回到另一个Kafka主题。使用Kafka Connect收听该新主题,并将转换后的消息写入目标接收器。