apache-kafka – 我应该使用什么:Kafka Stream或Kafka消费者api或Kafka连接

我想知道什么对我最好:Kafka流或Kafka消费者api或Kafka连接?

我想从主题中读取数据然后进行一些处理并写入数据库.所以我写了消费者,但我觉得我可以编写Kafka流应用程序并使用它的有状态处理器来执行任何更改并将其写入数据库,这可以消除我的消费者代码,只需要编写db代码.

我想插入记录的数据库是:
HDFS – (插入原始JSON)
MSSQL – (已处理的json)

另一个选择是Kafka connect,但我发现现在没有json支持hdfs sink和jdbc sink连接器.(我不想用avro编写)并且创建模式也很复杂的嵌套消息.

或者我应该编写自定义Kafka连接来执行此操作.

那么您是否应该编写Kafka消费者或Kafka流或Kafka连接?
什么会在性能方面更好,开销更少?

最佳答案 您可以将它们全部组合使用

I have tried HDFS sink for JSON but not able to use org.apache.kafka.connect.json.JsonConverter

不清楚为什么不.但我会假设您忘记设置schemas.enabled = false.

when I set org.apache.kafka.connect.storage.StringConverter it works but it writes the json object in string escaped format. For eg. {"name":"hello"} is written into hdfs as "{\"name\":\"hello\"}"

是的,它将对JSON进行字符串转义

Processing I want to do is basic validation and few field values transformation

Kafka Streams或Consumer API能够进行验证. Connect能够进行简单消息转换(SMT)

一些用例,你需要“重复数据”到Kafka;处理你的“原始”主题,使用消费者读取它,然后将其生成回“清理”主题,从中可以使用Kafka Connect写入数据库或文件系统.

点赞