1

RxJava または Reactive Stream でコンテンツベースのルーティングを行う慣用的な方法を知っている人はいますか?

map filter や transform などの標準演算子を使用して、リアクティブ メッセージ処理パイプラインを作成する方法を確認できます。

しかし、演算子を使用して複数の可能なパイプラインを切り替える理由が 1 つわかりません。
入力マップまたはオブジェクトの内容に応じて異なるパイプラインが選択されるように、1 つの初期入力オブジェクトまたはマップに基づいて、多くの処理パイプラインから 1 つをトリガーできるようにしたいと考えています。

アイデアは、外部 API に対していくつかの可能なリクエストを作成する必要があり、トリガーされる API とパイプラインを決定するものは、コントローラーへの入力オブジェクトに依存するということです。

これは Spring 統合または Camel で実行できることはわかっていますが、私のユースケースでは、ネットワーク上のレイテンシーを処理できるので、統合エンジンの完全な柔軟性は必要ありません。

よろしくお願いします

4

2 に答える 2

3

コンテンツ ベースのルーティングは、次の仕事ですflatMap

observable.flatMap(x -> {
    if (isA(x))
        return observableA(x);
    else 
        return observableB(x);
});
于 2016-11-12T20:09:51.730 に答える