代码之家  ›  专栏  ›  技术社区  ›  Jicaar

一个卡夫卡制作人可以被多个接收器安全使用吗?

  •  1
  • Jicaar  · 技术社区  · 6 年前

    我有一个具有三种不同ProcessFunction的项目。如果其中任何一个发生错误,则会创建一个错误对象并将其写入侧面输出。所有三个都使用相同的输出AG作为侧输出。

    我的问题是:我是否必须为每个sideoutput流创建一个新的FlinkKafkaProducer,或者我是否可以使用相同的FlinkKafkaProducer为每个sideoutput流创建一个新的接收器,因为这三个都将写入相同的错误主题?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Joshua DeWald    6 年前

    没有理由实际使用不同的接收器,您可以实际执行。并将其发送到单个接收器。

    类似于以下内容的操作应该有效:

    stream1 = source.stuff()
    stream2 = source.stuff()
    stream3 = source.stuff()
    stream1.union(stream2, stream3).addSink(kafkaSink)