我正在使用 Flink 0.10.0 数据流。这是我的要求。
- 我的源系统是广播消息的自定义系统。在我的自定义 SourceFunction 实现中,我实现了回调来侦听消息。
- 每个回调都会收到不同类型的消息。
- 我想解码/转换回调中收到的对象以发送到我的 SinkFunction。我相信我可以用 FlatMapFunction 或类似的东西来做到这一点。
- 因为我有各种回调,所以我听的每个回调的解码逻辑都是不同的。我想它们不能有一个 FlatMapFunction,因为 IN 类型会不同。
如何设计具有以下拓扑的系统:
Source
|- FlatMap_1(处理回调1收到的消息类型)-> Sink
|- FlatMap_2(处理回调2收到的消息类型)-> Sink
|- FlatMap_3(处理回调3收到的消息类型)-> Sink
等。
我不想将一个的输出发送给另一个。这本质上是一个扇出,即我希望它们中的每一个都并行运行,并且还希望源能够确定将接收到的消息发送到哪个操作员。
我已经阅读了文档和示例,但找不到与此匹配的示例。将不胜感激这方面的帮助。