Flink 0.10.0 DataStream を使用しています。これが私の要件です。
- ソース システムは、メッセージをブロードキャストするカスタム システムです。私のカスタム SourceFunction 実装では、メッセージをリッスンするためにコールバックを実装しています。
- 各コールバックは、異なるタイプのメッセージを受け取ります。
- コールバックで受信したオブジェクトをデコード/変換して、SinkFunction に送信したいと考えています。これは FlatMapFunction などでできると思います。
- さまざまなコールバックがあるため、リッスンするそれぞれのデコード ロジックは異なります。IN タイプが異なるため、それらすべてに対して単一の FlatMapFunction を持つことはできないと思います。
次のトポロジを持つシステムを設計するにはどうすればよいですか。
ソース
|- FlatMap_1 (コールバック 1 によって受信されたメッセージ タイプの処理) -> シンク
|- FlatMap_2 (コールバック 2 によって受信されたメッセージ タイプの処理) -> シンク
|- FlatMap_3 (コールバック 3 によって受信されたメッセージ タイプの処理) -> シンク
など。
一方の出力を他方に送信したくありません。これは基本的にファンアウトです。つまり、それぞれが並行して機能するようにし、受信したメッセージをどのオペレーターに送信するかをソースが判断できるようにしたいと考えています。
ドキュメントと例を確認しましたが、これに一致する例を見つけることができません。これについて助けていただければ幸いです。