2013-08-13 3 views
-2

Я собираюсь использовать Nodejs для обработки некоторых операций с интенсивным циклом процессора с отправкой сообщений электронной почты зарегистрированным пользователям, поскольку PHP использовал слишком много за время его запуска и зависает на сайте.Соединение с сервером MySQL и запросы

Одно дело, что Nodejs будет находиться на другом сервере и выполняет запрос с использованием внешнего подключения в MySQL.

Я слышал, что внешнее соединение db плохо для производительности.

Это правда? И есть ли какие-либо плюсы и минусы этого?

ответ

0

Имейте в виду, что при выполнении интенсивной работы с ЦП в узле все блоки приложений выполняются в одном потоке. Если вы собираетесь запустить интенсивную работу с ЦП в узле, убедитесь, что вы отложили его на дочерний процесс, и только задание - запустить расчет, а затем вернуться к основному приложению. Это гарантирует, что приложение Node сможет продолжать отвечать на запросы о доходах по мере обработки данных.

Теперь, на ваш вопрос. Наличие базы данных на другом сервере чрезвычайно распространено и обычно является хорошей практикой. Там, где вы можете столкнуться с проблемами производительности, ваша база данных находится в другом центре обработки данных. Чем дальше (физически) ваш сервер базы данных находится на вашем сервере приложений, тем больше задержек будет за каждый запрос.

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

+0

Спасибо за это. Это на самом деле комбинация сложных запросов MySQL (они хорошо проиндексированы) и операций цикла PHP. У меня создалось впечатление, что Node будет намного быстрее, особенно во время интенсивных операций цикла, чем PHP (http://blog.loadimpact.com/2013/02/01/node-js-vs-php-using-load-impacttoto -visualize-node-js-efficency /) –

+0

Javascript, выполняемый через V8, определенно быстрее, чем PHP. Однако вы, вероятно, сможете получить такую ​​же выгоду, если просто запускаете вызовы PHP на отдельном сервере, а не на основном веб-сервере. Вы все еще можете иметь систему очередей с рабочим столом PHP вместо узла, который запускает ваши существующие циклы и запросы, только на другом сервере. Это может быть проще реализовать, поскольку ваша база кода уже является PHP. –

+0

Вот довольно хорошее изложение шагов, которые я предпринял для решения этой проблемы. Насколько мне нравится узел, это не волшебная пуля, и ваши проблемы могут быть легко решены только на одном PHP. –

Смежные вопросы