Flink 写入Kafka多个topic
Flink 写入Kafka 到多个Topic 我想到的有两种方法
第一种:分流
利用split() 方法,不过现在已经被官方定位弃用的方法 ,给出的代替方案是side output,其实大致一样 都要多产生一个流。side output 在学习窗口算子的超时事件时应该能更清楚的了解(我当时是在这了解到的)。
这种方案的缺点就是每多一个topic 都要多产生一个流再添加一个addSink(),需要修改逻辑。而且还要,如果有100个呢?
addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() addSink() ...
第二种:重写序列化方法
具体的说明看注释 主要代码看getTargetTopic方法
package kafka.connection; import org.apache.flink.api.common.serialization.SerializationSchema; import org.apache.flink.api.common.serialization.SerializationSchema.InitializationContext; import org.apache.flink.streaming.connectors.kafka.KafkaContextAware; import org.apache.flink.streaming.connectors.kafka.KafkaSerializationSchema; import org.apache.flink.streaming.connectors.kafka.partitioner.Flin
