Flink实战系列Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑

Posted JasonLee-后厂村程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink实战系列Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑相关的知识,希望对你有一定的参考价值。

Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑

需求

有的时候我们需要消费同一个 kafka 集群的多个 topic 数据,然后可能会根据不同 topic 的数据做不同的处理逻辑.可能还需要获取到 topic 的元数据信息比如 offset ,timestamp 等.

分析

其实对于这个需求来说实现的方式有很多种,比如你可以消费两个 topic 的数据,然后做一个 union 操作,然后可以用 filter 来过滤不同 topic 的数据做不同的处理,但是这种方式并不是最优解,那更合理的方式是直接消费多个 topic 的数据,并且获取到 kafka 的元数据信息,然后用测流输出的方式去处理不同 topic 的数据.这样是最简单也是性能最好的.

实现

首先,Flink 本身就是支持消费多个 topic 数据的,然后我们自定义一个反序列化类去实现 KafkaDeserializationSchema 接口就可以拿到元数据的信息.

package flink.utils;

import org.apache.flink.a

以上是关于Flink实战系列Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑的主要内容,如果未能解决你的问题,请参考以下文章

Flink实战系列Flink 消费多个 topic 的数据根据不同 topic 数据做不同的处理逻辑

Flink实战系列Flink 1.14.0 消费 kafka 数据自定义反序列化器

Flink系列之:基于scala语言实现flink实时消费Kafka Topic中的数据

Flink消费kafka(动态拉取topic + 正则匹配多个topic)

利用Flink消费Kafka数据保证全局有序

利用Flink消费Kafka数据保证全局有序