Я должен балансировать нагрузку на два экземпляра node.js / Socket.io на разных ящиках, где nginx запускает простую службу уведомлений с ретроактивным событием для новых клиентов.
Я не думаю, что возникнут какие-либо проблемы с типом подключения к веб-сокету (который будет основным методом подключения), поскольку поддерживаемое соединение сводит на нет необходимость сеанса (кроме повторного подключения, которое меня не слишком беспокоит) .
Однако возникнет проблема с подходами к отказу от опроса, поскольку они полагаются на клиентские сеансы и со стандартной балансировкой нагрузки roundrobin (в этом случае) с 50% вероятностью, что следующий опрос появится как новый клиент.
Вместо того, чтобы синхронизировать сеансы между двумя модулями, для меня имеет смысл заставить балансировщик нагрузки выполнять полуинтеллектуальную маршрутизацию с использованием либо ip_hash директива или nginx-липкий-модуль.
Кажется, что ip_hash сработает, но я вижу, что у него есть потенциальные проблемы с мобильными клиентами, которые либо меняют IP-адреса в сети 3G, либо меняются между мобильной сетью и WiFi, таким образом меняя IP-адрес.
У меня есть пара вопросов, связанных с этим; если вы ответите на любой вопрос, было бы здорово ...