我在微服务架构中使用 flink 流来 ETL 数据从服务到报告和搜索数据库。为了感知数据更改,我目前正在向 RMQ 生成自定义事件,然后根据报告和搜索需求使用流对数据进行分区、聚合和转换。
我正在迁移到 kafka 作为代理和 debezium 从所有微服务的数据库中获取数据。如果我可以使用 KStreams API 或 flink,或者有可能将两者结合起来,我正在徘徊。
由于Kafka Streams可以嵌入到任何Java应用程序中,理论上,答案是肯定的。
但是,出于 ETL 的目的,没有必要,因为 Flink 已经可以在不同的 Kafka 主题甚至不同的集群之间进行过滤、映射、聚合操作(Kafka Streams 无法做到)。