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