2016-11-18 4 views
0

Я настраиваю файловый сервер, который будет использоваться множеством клиентов. Кроме того, клиенты будут регулярно добавляться и удаляться.Сколько серверов NodeJS Express можно запускать параллельно?

Я написал простой сервер, используя NodeJS + Express, который может выполнять некоторую простую обработку файлов. При создании нового клиента необходимые файлы копируются в корневой каталог клиента. Сервер nodeJS запускается для клиента, который предоставляет простой веб-интерфейс и API для вывода информации. Когда клиент выполняется, файлы удаляются, а сервер развернут. Клиенты могут использовать это в течение нескольких месяцев и лет, или только за один раз.

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

Так что мой вопрос в том, будет ли этот масштаб вверх? Может ли машина с умеренным питанием обрабатывать сотни серверов Node + Express, или это нужно переписать?

ответ

3

Его следует переписать, чтобы у вас не было сервера для каждого отдельного пользователя. Один сервер nodejs должен иметь возможность обрабатывать потребности многих пользователей (возможно, тысячи или десятки тысяч). Затем, если вы превысите масштаб того, что может обрабатывать один сервер, вы можете развернуть кластеризацию, чтобы несколько серверов nodejs обрабатывали потребности тысяч пользователей.

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

И для максимальной масштабируемости все ваши файловые операции должны использовать асинхронный ввод/вывод (не синхронный). Если у вас есть конкретные операции с файлами, которые интенсивно работают в ЦП, вы можете переместить эти конкретные операции на временные дочерние процессы, чтобы ваш основной сервер nodejs продолжал поддерживать потребности большого числа пользователей.

Так что мой вопрос в том, будет ли этот масштаб вверх? Может ли машина с умеренным питанием обрабатывать сотни серверов Node + Express, или это должно быть перезаписано ?

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

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