проблемы с развертыванием серверов rails на нескольких хостах - PullRequest
1 голос
/ 27 марта 2012

Я часто слышал, что развертывание традиционного монолитного приложения Rails (то есть без внутреннего веб-API, без очереди сообщений, без сервера Redis / memcached) на нескольких серверах может привести к множеству ошибок, которые очень сложно отладить, но яЯ с трудом придумываю некоторые конкретные примеры, несмотря на несколько часов поиска в Google

Некоторые очевидные проблемы, о которых я могу думать:

Наблюдатели - скорее всего, не будут работать должным образом, так как наблюдениераспространяется только на один сервер, а не на все (при условии отсутствия очереди сообщений)

Сеансы - вероятно, потребуется хранить их в базе данных, для чего потребуется собственный хост

Кэши - любыеУ уборщиков будут проблемы с распространением недействительности между серверами.

Кто-нибудь еще хочет внести свой вклад?Буду очень признателен за любые статьи, с которыми могут столкнуться другие, или за общую мудрость:)

1 Ответ

0 голосов
/ 27 марта 2012

Наблюдатели - это просто обратные вызовы кода.Они запускаются на каждом процессе, на каждом сервере.

Сеансы по умолчанию установлены в хранилище файлов cookie за последние несколько лет.Таким образом, несколько серверов не проблема.Если в вашем cookie-файле недостаточно места, я полагаю, что вы делаете что-то не так.

Аннулирование кэша действительно является проблемой.Но это всегда так.Одно из решений состоит в том, чтобы разбить ваш кэш на отдельный сервис.Такие сайты, как Facebook, имеют гигантские фермы memcache

Я думаю, что масштабирование и кластеризация - это всегда серьезная проблема.Но это, кажется, старый аргумент против рельсов.Во всяком случае, в последние несколько лет рельсы сияли в этом отношении.С ec2, nosql и автоматизацией серверов становится нормой в сообществе.

...