Bootstrap

【Flink实战系列】Flink 消费多个 Topic 数据利用侧流输出完成动态的分流操作

【Flink实战系列】Flink 消费多个 Topic 数据利用侧流输出完成动态的分流操作

需求背景

这篇文章实际上是对Flink 消费多个 Topic 数据利用侧流输出完成分流功能这篇文章的升级,在上一篇文章中我们已经完成了利用侧流输出分流的功能,但是功能还不够强大,假如我现在要消费 10 个不同 Topic 的数据,每个 Topic 的数据对应着一张表,然后要对这个 10 个表分别做不同的操作,之前的文章当然也是可以满足这个需求的,但是我们要手动复制 N 遍侧流输出的代码,那如果我要消费 15 个 topic 呢?每次都要手动复制一遍代码吗?显示是不合理,也是不优雅的,所以我们的需求就变成了动态的实现侧流输出的分流操作。

实现思路

实现的思路是我们用一个 Map<String, DataStream> 集合来存储分流后的 ds,map 的 key 是 topic name,value 是分流后的 datastream 流。

代码

JSONObjectDeserialization
package flink.deserialize
;