Подтвердить что ты не робот

Запуск метеора в кластере и изменения в реальном времени

Я планировал разместить Meteor на своих серверах Amazon AWS EC2, но я также хотел бы запустить несколько экземпляров сервера, чтобы обслуживать больше клиентов. Есть ли способ сделать это в Meteor, не нарушая возможности для клиентов обновлять информацию об обновлениях своих коллекций?

4b9b3361

Ответ 1

При запуске нескольких процессов сервера Meteor необходимо учитывать две основные проблемы.

  • Сессия сеанса клиента. Клиенты используют библиотеку SockJS для подключения к серверу Meteor, как правило, используя длинную стратегию опроса, которая так часто перестраивается на сервер. Серверный процесс содержит состояние, связанное с каждым клиентом. Поэтому важно, чтобы данное клиентское соединение не отскакивало между серверами, иначе сервер будет думать, что он разговаривает с новым клиентом и повторно передает все условия подписки.

  • Согласование недействительности базы данных. В любое время, когда клиент обрабатывает запись базы данных, серверный процесс выполняет перерасчет и подталкивает обновления любому другому уязвимому клиенту. Но клиенты, подключенные к другому серверу, не будут видеть изменения до тех пор, пока этот серверный процесс не выполнит 10-секундный цикл опроса Mongo. Для некоторых приложений вполне нормально, что большинство клиентов отстают на 10 секунд. Если ваше приложение требует чего-то большего в режиме реального времени, вам придется реализовать свою собственную межпроцессную связь между процессами сервера Meteor.