Я использую Flink 0.10.0 DataStream. Вот мое требование.Flink fan-out flatMap
- Моя исходная система - это настраиваемая система, которая передает сообщения. В моей пользовательской реализации SourceFunction у меня есть обратные вызовы для прослушивания сообщений.
- Каждый из обратных вызовов получает сообщение другого типа.
- Я хотел бы декодировать/преобразовать объект, полученный в обратном вызове, для отправки на мою SinkFunction. Это, я считаю, я могу сделать с FlatMapFunction или аналогичным.
- Поскольку у меня есть различные обратные вызовы, которые я слушаю логику декодирования для каждого из них, это разные. Я полагаю, не может иметь ни одной FlatMapFunction для всех из них, поскольку тип IN будет другим.
Как я могу разработать систему, которая имеет следующую топологию:
Источник
| - FlatMap_1 (тип обработки сообщения, полученные от обратного вызова 1) -> Раковина
| - FlatMap_2 (обработка типа полученное сообщение по обратному сообщению 2) -> Sink
| - FlatMap_3 (тип обработки сообщений, полученный обратным вызовом 3) -> Раковина
и так далее.
Я не хочу посылать вывод одного на другой. Это, по сути, Fan-Out, то есть я хотел бы, чтобы каждый из них функционировал параллельно, а также хотел бы, чтобы Source смог определить, какой оператор должен отправить принятое сообщение.
Я прошел через документацию и примеры, но не смог найти пример, который соответствует этому. Поблагодарите помощь в этом.
спасибо за быстрый ответ и извинения за поздний ответ вам. Спасибо, что сработало. Я не уверен, как я не мог получить это из документов :). –