Как выполнять интенсивные вычисления node.js

Я работаю над приложением для электронной коммерции, которое должно пересчитывать цены на продукты каждый раз, когда продукты отправляются с сервера клиенту (каждый раз отправляется до тысяч продуктов). Сама часть расчета довольно трудоемка, поскольку для расчета требуется несколько запросов к базе данных. Мое наивное решение состоит в том, чтобы абстрагировать вычислительную часть на другое приложение/сервер node.js, предназначенное исключительно для вычислений. Кто-нибудь знает о лучшем или более масштабируемом/оптимальном способе сделать это?

Заранее спасибо!


person Trung Tran    schedule 26.10.2016    source источник
comment
Хороший первый шаг, абстрагирующий вычисления на другие серверы. Я рекомендую изучить AMQP или SQS и создание распределенной системы, если производительность и надежность являются такой проблемой. Однако, не зная более конкретной информации о системе, мы можем дать только общие советы.   -  person tcooc    schedule 26.10.2016


Ответы (1)


Отложить задачу, требующую больших вычислительных ресурсов, на приложение выделенного узла — хорошая идея, но имейте в виду, что этот цикл событий приложения также будет заблокирован и не сможет одновременно обслуживать несколько запросов.

Вам все равно придется создать специальный процесс для вычислений с использованием кластера или child_process.spawn()).

Существует достаточно старая, но все еще хорошая статья о различных возможных подходах.

person Gab    schedule 26.10.2016