I/O 負荷の高いタスクと CPU 負荷の高いタスクの両方に適した Web テクノロジを選択しようとしています。NodeJs は大きな負荷を処理するのに最適で、スケールアウトも可能です。ただし、CPUの重い部分で立ち往生しています。別のテクノロジー(Javaなど)をノードに統合して、他のスレッドでアルゴリズムを実行し、結果をノードで再度使用することは可能ですか。既存のソリューションはありますか?他の提案は非常に良いでしょう。
4 に答える
node-javaを使用して、NodeJS を Java と統合できます。
前の回答で述べたように、Java と対話する npm モジュールである node-java を使用できます。Node.js を Java ライブラリとしてラップし、Java で Node.js API を提供するJ2V8を使用することもできます。
答えはラムダ アーキテクチャです。
NodeJs はそれ自体が優れています。高速なクエリを軽量な方法で処理し、データに対して余分な計算を行うことはありません。
CPU 負荷の高いタスクは、JVM に基づく特殊なコンポーネントに簡単に委任できます (最も有名なものは JVM にあります)。これは、メッセージ ブローカーとマイクロサービスを使用して適切に実装されています。
nodejs を Cassandra や Mongodb などのデータベースや Apache Spark などのクラスター コンピューティング フレームワーク (必ずしもそうではありませんが、問題によって異なります) に接続して、システムの CPU 負荷の高い部分を処理できるイベント ベースのアーキテクチャです。また、軽量コンテナは、各コンポーネントが存在する適切な分離されたランタイム環境を提供することで、ケーキにアイシングを追加します.
これが、この質問に関するこれまでの私の結論です。上記の提案により、ノードをJavaまたはその他のCPU負荷の高いタスク用のJVMベースのソリューションでラップする必要がなくなると思います。