我有一个包含三个不同processFunction的项目。如果其中任何一个发生错误,则会创建一个错误对象并将其写入侧输出。所有三个都使用相同的outputTag作为侧输出。
我的问题是:我是否必须为每个sideoutput流创建一个新的FlinkKafkaProducer,或者我可以使用相同的FlinkKafkaProducer为每个侧输出流创建一个新的接收器,因为所有三个都将写入相同的错误主题?
答案 0 :(得分:2)
没有理由实际拥有不同的接收器,您实际上可以执行流的.union()并将其发送到单个接收器。
以下内容应该有效:
stream1 = source.stuff()
stream2 = source.stuff()
stream3 = source.stuff()
stream1.union(stream2, stream3).addSink(kafkaSink)