NodeJS + SocketIO:Масштабирование и предотвращение единой точки отказа

Таким образом, первое приложение, которое люди обычно создают с помощью SocketIO и Node, обычно является приложением для чата. Это приложение для чата в основном имеет 1 сервер Node, который будет транслироваться нескольким клиентам. В коде Node у вас будет что-то вроде.

//Psuedocode
for(client in clients){
  if(client != messageSender){
    user.send(message);
  }
}

Это отлично подходит для небольшого числа пользователей, но я вижу в этом проблему. Во-первых, есть единственная точка отказа — сервер Node. Во-вторых, приложение будет тормозить по мере роста числа клиентов. Что же делать тогда, когда мы достигнем этого узкого места? Существует ли архитектура (горизонтального/вертикального масштабирования), которую можно использовать для решения этой проблемы?

5
задан denniss 16 March 2012 в 05:36
поделиться