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