Сохраните соединения закрытых экземпляров позади подсистемы балансировки нагрузки

Я ищу систему для создавания живого приложения сокетов через sockets.io, и это может быть сбалансировано без проблемы.

Существуют тонны решений сбалансировать загрузку между несколькими экземплярами сокета, как SocketCluster, но проблема, с которой я сталкиваюсь, состоит в том, что, когда подсистема балансировки нагрузки решает, что вместо 10 экземпляров я нуждаюсь в 8 экземплярах и закрываю 2 из них, как я могу сохранить сокетные соединения тех экземпляров?

Пытаясь объяснить это лучше, у меня есть компания по потоковой передаче события что потоковые события почти все выходные, но ничто промежуточное. Если я использую Amazon EC2, я только собираюсь иметь 1 экземпляр вдоль времени, когда существует почти 0 соединенных пользователей, но в выходные Amazon запустит некоторые экземпляры, когда событие начнет передавать потоком и направит каждое соединение с различным сервером. Проблема, которую я вижу, когда событие заканчивается, и люди начинает выходить, подсистема балансировки нагрузки запустит заключительные экземпляры, и люди, все еще подключенные к тем экземплярам, начнут терять соединение с чатом. Я знаю, что могу преодолеть это просто путем повторного подключения людей, но возможен, что они теряют некоторые сообщения между тем, они снова соединяются.

Существует ли система, которая будет направлять соединение с другим сервером и знать, что это было тем же пользователем, который был подключен к другому экземпляру без повторного подключения?

0
задан 6 July 2015 в 22:49
1 ответ

Нельзя держать соединения с закрытым серверным процессом. Сокет - это соединение между двумя определенными конечными точками. По соображениям безопасности, вы не можете просто вернуть одну из конечных точек на новый сервер. Вместо этого, вы должны снести сокет и позволить ему переподключиться (что socket.io сделает за вас автоматически), а затем восстановить баланс в новой конфигурации при повторном подключении

.
2
ответ дан 4 December 2019 в 13:48

Теги

Похожие вопросы