我应该使用什么:Kafka流或Kafka消费者API或Kafka Connect



我想知道什么对我来说是最好的:kafka stream或kafka消费者api或kafka connect?

我想从主题中读取数据,然后进行一些处理并写入数据库。因此,我已经写过消费者,但我觉得我可以编写Kafka流应用程序,并使用它的状态处理器执行任何更改并将其写入数据库,以消除我的消费者代码,并且只需要编写DB代码。

我想插入记录的数据库是:HDFS-(插入RAW JSON)MSSQL-(处理的JSON)

另一个选项是Kafka Connect,但我发现到目前为止,HDFS接收器和JDBC接收器连接器现在还没有JSON支持。(我不想在Avro中写入),而创建模式也对复杂的嵌套消息也很痛苦。

或应该编写自定义kafka Connect以执行此操作。

因此,您需要您对我是否应该写Kafka消费者或Kafka流还是Kafka Connect的意见?在性能方面,什么会更好,开销较少?

您可以使用它们的组合

我尝试过用于JSON的HDFS接收器,但无法使用org.apache.kafka.connect.json.JsonConverter

不清楚为什么不。但是我假设您忘了设置schemas.enabled=false

当我设置org.apache.kafka.connect.storage.StringConverter时,它可以工作,但以字符串逃脱格式写入JSON对象。例如。{"name":"hello"}写入HDFS为"{"name":"hello"}"

是的,它将字符串 - escape json

我想做的是基本验证,而几乎没有字段值转换

kafka流或消费者API能够验证。连接能够简单消息转换(SMT)


一些用例,您需要"复制数据"到kafka;处理您的"原始"主题,使用消费者阅读它,然后将其重新产生为"清洁"主题,您可以使用Kafka Connect将其写入数据库或文件系统。

欢迎来到堆栈溢出!请to tout https://stackoverflow.com/tour

请提出精确的问题,而不是提出意见 - 这使网站更清晰,意见不是答案(并且受每个人的偏好的约束)。询问"如何与JSON一起使用Kafka -connect" - 或这样适合此网站。

另外,请展示一些研究。


更少的开销将是Kafka消费者-Kafka流和Kafka Connect使用Kafka Consumer,因此您将始终能够减少开销,但也将失去所有好处(容忍失败,轻松使用,支持等)<)

首先,这取决于您的处理是什么。聚合?数数?验证?然后,您可以使用Kafka流进行处理,并将结果写入您想要的格式。

然后,您可以使用Kafka Connect将数据发送到数据库。您没有被迫使用Avro,可以使用其他格式来键/值,请参见

使用JSONCONVERTER

kafka连接不输出JSON

最新更新