【问题标题】:Flink fan-out flatMapFlink 扇出 flatMap
【发布时间】:2015-11-21 09:40:05
【问题描述】:

我正在使用 Flink 0.10.0 数据流。 这是我的要求。

  • 我的源系统是广播消息的自定义系统。在我的自定义 SourceFunction 实现中,我实现了回调来监听消息。
  • 每个回调都会收到不同类型的消息。
  • 我想解码/转换回调中收到的对象以发送到我的 SinkFunction。我相信我可以使用 FlatMapFunction 或类似功能来做到这一点。
  • 由于我有各种回调,我听的每个回调的解码逻辑都不同。我想它们不能有一个 FlatMapFunction,因为 IN 类型会不同。

如何设计具有以下拓扑的系统:

来源
|- FlatMap_1 (处理回调 1 收到的消息类型) -> Sink
|- FlatMap_2 (处理回调 2 接收到的消息类型) -> Sink
|- FlatMap_3 (处理回调 3 收到的消息类型) -> Sink
等等。

我不想将一个的输出发送给另一个。这本质上是一个扇出,即我希望它们中的每一个都并行运行,并且还希望源能够确定将接收到的消息发送到哪个操作员。

我已经阅读了文档和示例,但找不到与此匹配的示例。非常感谢这方面的帮助。

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    我认为您正在寻找Split operator,它在DataStream API transformation section 的末尾进行了解释。 Split 运算符将一个输入流导向不同的输出流。

    【讨论】:

    • 感谢您的及时回复,并为迟到的回复道歉。谢谢这工作。我不知道我怎么不能从文档中得到这个:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多