Come integrare Java con nodejs per gestire attività pesanti della CPU?


Sto cercando di scegliere una tecnologia web giusta sia per i/O heavy che per le attività pesanti della CPU. NodeJS è perfetto per la gestione di grandi carichi e può anche essere scalato. Tuttavia, sono bloccato con la parte pesante della cpu. È possibile integrare un'altra tecnologia (ad esempio Java) nel nodo, in modo da farlo eseguire i miei algoritmi in altri thread e quindi utilizzare nuovamente i risultati nel nodo. Esiste una soluzione esistente? Qualsiasi altro suggerimento sarà molto buono.

Author: Gevorg Soghomonyan, 2013-08-02

3 answers

È possibile integrare NodeJS con Java utilizzando node-java.

 13
Author: JustDanyul, 2013-09-17 13:59:27

Come menzionato in una risposta precedente, puoi usare node-java che è un modulo npm che parla con Java. Puoi anche usare J2V8 che avvolge il Nodo.js come libreria Java e fornisce un Nodo.api js in Java.

 2
Author: irbull, 2016-07-27 22:00:43

La risposta è lambda architecture.

NodeJS è bello da solo: gestisce le query veloci in modo leggero, non facendo calcoli aggiuntivi sui dati.

Le attività pesanti della CPU possono essere facilmente delegate a componenti specializzati basati su JVM (beh, i più famosi sono su JVM). Questo è ben implementato utilizzando mediatori di messaggi e microservizi.

Un'architettura basata su eventi, in cui nodejs può essere collegato a database come Cassandra o Mongodb e cluster computing framework come Apache Spark (non necessariamente, però, dipende dal problema) per gestire le parti pesanti della cpu del sistema. E i contenitori leggeri aggiungono una ciliegina alla torta fornendo ambienti di runtime isolati per ciascuno dei componenti in cui vivere.

Questa è la mia conclusione finora riguardo a questa domanda. Penso che i suggerimenti di cui sopra eliminino la necessità di avvolgere il nodo sotto java o altra soluzione basata su JVM per attività pesanti della cpu.

 0
Author: Gevorg Soghomonyan, 2016-08-26 09:37:59