現在、2つのアプリを実行しています...
1 つは、フロントエンドに多数のサービスを提供する REST API レイヤーです。もう 1 つは「翻訳アプリ」です。JSON オブジェクトを (http POST 呼び出しを介して) フィードし、そのオブジェクトに対してデータ変換とマッピングを実行して、REST レイヤーに返すことができます。
私の状況は、多数のオブジェクトに対してこれを行いたいということです。私が望むフローは次のとおりです。
ユーザーが特定の形式で 100,000 個のオブジェクトを要求 -> REST レイヤーがデータベースからそれを取得 -> 各 JSON データ オブジェクトを変換サービスに渡して書式設定を実行 -> それぞれを REST レイヤーに戻す -> REST レイヤーが新しいオブジェクトをユーザーに返す.
私がやりたくないのは、100,000 回の異なる呼び出しで tranlate.example.com/translate を呼び出したり、1 つの巨大な POST 要求でメガバイトのデータを渡したりすることです。
したがって、明らかな答えは、データを翻訳アプリにストリーミングしてから、データをストリーミングして戻すことです。
アプリ間でデータをストリーミングするための多くのソリューションがあるようです: websocket (socket.io) を開く、2 つの間の生の TCP 接続を開く、または Node の HTTP 要求と応答データは実際にはストリームであるため、それを利用できます次に、正常に変換されたときに JSON オブジェクトを発行します
私の質問は、2 つのアプリ間でデータをストリーミングするためのベスト プラクティスはありますか? 「REST」モデルを維持するには、http(req, res) ストリームを使用し、長寿命の接続を開いたままにしておく必要があるようです。提供できるサンプルはどれも素晴らしいでしょう。