非常扇出的 flatMap
Flink fan-out flatMap
我使用的是 Flink 0.10.0 DataStream。
这是我的要求。
- 我的源系统是一个广播消息的自定义系统。在我的自定义 SourceFunction 实现中,我实现了回调以侦听消息。
- 每个回调都会收到不同类型的消息。
- 我想decode/convert将回调中接收到的对象发送到我的SinkFunction。我相信我可以用 FlatMapFunction 或类似的东西来做。
- 由于我有各种回调,所以我听到它们的解码逻辑各不相同。我想不能为所有这些都使用一个单一的 FlatMapFunction,因为 IN 类型会不同。
如何设计具有以下拓扑结构的系统:
来源
|- FlatMap_1 (处理回调1收到的消息类型) -> Sink
|- FlatMap_2 (处理回调2收到的消息类型) -> Sink
|- FlatMap_3 (处理回调3收到的消息类型) -> Sink
等等。
我不想将一个的输出发送给另一个。这本质上是一个扇出,即我希望它们中的每一个都并行运行,并且还希望 Source 能够确定将接收到的消息发送到哪个 Operator。
我已经阅读了文档和示例,但找不到与此匹配的示例。非常感谢对此的帮助。
我认为您正在寻找 Split operator
,它在 DataStream API transformation section 的末尾有解释。 Split 运算符将一个输入流定向到不同的输出流。
我使用的是 Flink 0.10.0 DataStream。 这是我的要求。
- 我的源系统是一个广播消息的自定义系统。在我的自定义 SourceFunction 实现中,我实现了回调以侦听消息。
- 每个回调都会收到不同类型的消息。
- 我想decode/convert将回调中接收到的对象发送到我的SinkFunction。我相信我可以用 FlatMapFunction 或类似的东西来做。
- 由于我有各种回调,所以我听到它们的解码逻辑各不相同。我想不能为所有这些都使用一个单一的 FlatMapFunction,因为 IN 类型会不同。
如何设计具有以下拓扑结构的系统:
来源
|- FlatMap_1 (处理回调1收到的消息类型) -> Sink
|- FlatMap_2 (处理回调2收到的消息类型) -> Sink
|- FlatMap_3 (处理回调3收到的消息类型) -> Sink
等等。
我不想将一个的输出发送给另一个。这本质上是一个扇出,即我希望它们中的每一个都并行运行,并且还希望 Source 能够确定将接收到的消息发送到哪个 Operator。
我已经阅读了文档和示例,但找不到与此匹配的示例。非常感谢对此的帮助。
我认为您正在寻找 Split operator
,它在 DataStream API transformation section 的末尾有解释。 Split 运算符将一个输入流定向到不同的输出流。