#node.js #docker #cluster-computing #hardware
#node.js #docker #кластерные вычисления #аппаратное обеспечение
Вопрос:
Я хочу масштабировать свое приложение Node с помощью кластеризации.
У меня есть приложение Node, которое контейнеризовано в Docker. В Node я могу разветвлять дочерние процессы для распараллеливания приложения на уровне потоков или я могу создавать параллельные контейнеры с помощью Kubernetes или Docker Swarm.
Каковы здесь компромиссы?
Это сервер шифрования, который примет загруженный файл, зашифрует его и отправит по назначению.
Комментарии:
1. Вы также использовали Express?
2. Зависит от того, сколько ядер у вас в системе и какие ядра выделены вашему контейнеру. Разветвление в дочернем процессе кажется более простым способом, с меньшими накладными расходами (требуется меньше оперативной памяти .. и т.д.) Для обработки данных. Параллельные контейнеры с k8 .. и т.д. предоставляют вам панель управления .. и т.д. Но для работы требуется больше ресурсов, и обработка может быть медленнее, поскольку новые контейнеры необходимо развернуть для параллельной обработки по сравнению с разветвлением.
3. @ThanveerShah да. В этом приложении используется Express.
Ответ №1:
Я нашел эту картинку в https://sites.google.com/site/mytechnicalcollection/cloud-computing/docker/container-vs-process . У автора есть еще несколько комментариев по этому поводу. Виртуальные машины против контейнеров против процессов.
Я пытаюсь подвести итог
A. преимущества контейнеров:
-
swarm / kubernetes — отличный планировщик. Для запуска на нескольких хостах или в любом другом месте docker.
-
безопасность и ограничения. контейнер обладает многими функциями, похожими на виртуальную машину. Но это быстрее и проще, чем виртуальная машина во многих аспектах.
B. преимущества процесса fork:
- легче контейнера.
И последнее, но не менее важное: вы можете запускать процессы fork внутри контейнера. Вы можете запускать только один контейнер на хост, и процесс внутри разветвления контейнера зависит от количества ядер его хоста. Это было бы идеально для вас.