Я пытаюсь выбрать правильную веб-технологию как для тяжелых задач ввода-вывода, так и для тяжелых задач ЦП. NodeJs идеально подходит для обработки большой нагрузки, а также может быть увеличен. Тем не менее, я застрял в тяжелой части процессора. Возможно ли интегрировать другую технологию (например, Java) в node, так что я буду запускать ее алгоритмы в других потоках, а затем снова использовать результаты в node. Есть ли существующее решение? Любые другие предложения будут очень хорошими.
Как интегрировать Java с nodejs для обработки задач с процессором?
Ответ 1
Вы можете связать NodeJS с Java, используя node-java.
Ответ 2
Как упоминалось в предыдущем ответе, вы можете использовать node -java, который является модулем npm, который говорит с Java. Вы также можете использовать J2V8, который обертывает Node.js как библиотеку Java и предоставляет API Node.js в Java.
Ответ 3
Ответ лямбда-архитектура.
NodeJs сам по себе хорош - быстро обрабатывает быстрые запросы, не делая дополнительных вычислений по данным.
Тяжелые задачи ЦП могут быть легко делегированы специализированным компонентам на основе JVM (ну, самые известные из них находятся на JVM). Это хорошо реализовано с помощью брокеров сообщений и микросервисов.
Архитектура, основанная на событиях, где nodejs можно подключить к базам данных, таким как Cassandra или Mongodb, и инфраструктура кластерных вычислений, таких как Apache Spark (не обязательно, хотя это зависит от проблемы), чтобы обрабатывать тяжелые части системы, И легкие контейнеры добавляют обледенение к пирогу, предоставляя приятные изолированные среды выполнения для каждого из компонентов, в которых можно жить.
Это мой вывод до сих пор по этому вопросу. Я думаю, что предлагаемые выше предложения устраняют необходимость обертывания node под Java или другое решение на основе JVM для сложных задач.