Я часто слышал, что развертывание традиционного монолитного приложения Rails (т. Е. Никакого внутреннего веб-API, без очереди сообщений, без сервера Redis/memcached) на несколько серверов может вызвать множество ошибок, которые очень трудно отлаживать, но я с трудом придумывают некоторые конкретные примеры, несмотря на несколько часов прибегая к помощиПроблемы с развертыванием серверов рельсов на несколько хостов
некоторые очевидные проблемы, которые я могу думать, являются:
Наблюдатели - скорее всего, не будет работать должным образом поскольку наблюдение распространяется только на одном сервере, а не во всех из них (при условии отсутствия очереди сообщений)
Сессии - вероятно, нужно будет хранить их в базе данных, которая нуждается в ее собственном хосте
Кэши - любые подметальные машины будут иметь проблемы, распространяющие недействительности между серверами.
Кто-нибудь еще должен внести свой вклад? Я бы очень признателен за любые статьи, которые могут возникнуть у других, или просто общая мудрость :)
Да, я полностью верю, что Rails не может справиться с проблемой, я просто работаю с устаревшим приложением Rails 2.3 прямо сейчас и пытаюсь убедить других людей в том, что они предпринимают детские шаги для масштабирования :) – Kabal458
Наблюдатели имеют смысл - проблема возникнет когда вы ожидаете, что наблюдение будет происходить на каждом сервере - кэширование - хороший пример этого, но это еще одна проблема. Сессия Я не полностью понимаю. Я полагаю, вы говорите, что все данные сеанса полностью хранятся в файле cookie, что является отличной причиной для обращения к хранилищу DB на своем собственном. Я предполагаю, что это сломается, если вы используете что-то вроде FileStore. – Kabal458
, если вы используете хранилище cookie, тогда между сервером и браузером нет связи. если ваши данные достаточно малы, то почему бы вам не использовать его. –