Аз съм разработчик на уеб приложения на ruby/php от доста време и съм свикнал с идеята за хоризонтално мащабиране на сървърни екземпляри, за да се справя с повече заявки. Хоризонтално мащабиране - което означава отделни екземпляри на приложение, разположено зад балансиращо натоварване, които не споделят нищо и не са запознати едно с друго.
Основният въпрос, който имам, е, тъй като Node.js и неговият акцент върху evented-io позволява на една кутия, работеща със сървър node.js, да обработва „хиляди“ едновременни заявки - използва ли се балансиране на натоварването/хоризонтално мащабиране за мащабиране на nodejs приложения ? Мащабирането на приложение за възел ограничено ли е до вертикално мащабиране (хвърляне на повече RAM/мощност за обработка на проблема)?
Вторият ми въпрос е свързан с хоризонталното мащабиране на node.js и websockets. Виждал съм доста уроци за „чат“ на Node.js, които използват уебсокети. (любим: http://martinsikora.com/nodejs-and-websocket-simple-chat-tutorial)
Тъй като websockets ефективно поддържат отворена линия за комуникация между браузър и сървър, дали хоризонтално мащабирана архитектура, типична за света на PHP/Ruby, ще доведе до прекъсване на приложение за чат като това, обяснено във връзката - тъй като новите заявки за връзка с websocket биха били присвоени на различни процеси/сървъри и няма да има един централен ресурс, проследяващ всички свързани клиенти?