Я всегда использовал область session
в своем приложении cfml, чтобы делать что-то вроде хранения текущего зарегистрированного объекта user
. Здорово!как управлять состоянием cfcs в кластерной среде
user.isLoggedIn()
, user.hasPremiumAccess()
, user.hasRole('admin')
В попытке перенести мое приложение к кластерному (облако) среды, я понимаю, что, опираясь на session
объем меньше, чем идеал, поскольку каждый экземпляр запущенного приложения имеет свой собственный сервер Память. Я знаю, что могу использовать «липкие сеансы», но я бы предпочел, чтобы это не ограничивало бы что-то вроде Amazon Elastic Beanstalk от свободно вращающихся вверх и вниз экземпляров приложения (основанных на нагрузке).
Я также знаю, что могу использовать область client
для хранения простых значений в кластерном режиме, но как насчет сложных данных, таких как объект пользователя, который я описал? Как бы вы могли сохранить пользовательский объект или какой другой подход использовать?
Я могу внести изменения в приложение по мере необходимости.
** EDIT **, чтобы быть ясным, это не значит, что я НЕ МОЖЕТ использовать липкие сессии, я не хочу использовать липкие сессии (или репликации сеанса). Причина в том, что я могу использовать все преимущества масштабируемости, не полагаясь на память сервера/экземпляра для управления состоянием сеанса. Такой подход позволяет службе, такой как Elastic Beanstalk, свободно создавать и разрывать экземпляры приложений-приложений, не затрагивая пользователя вообще. Использование липких сеансов не позволяет этого.
некоторые возможные решения я рассмотрены, включают:
- Сериализация/десериализации «состояние» пользователь объекта пользователя для сохранения в клиента области действия и «повторной инициализации» пользователя на каждой странице загрузки
- Сериализация/десериализации «состояние» пользователь объекта пользователя, чтобы хранить в NoSQL БД и «переинициализация» пользователя при каждой загрузке страницы
Если вы пытаетесь используйте ColdFusion на эластичном бобовом стебле, затем прочитайте эту ошибку - [AWS Elastic Beanstalk отклоняет WARFUN WARNING] (https://bugbase.adobe.com/index.cfm?event=bug&id=3365388) и связанную с ним почту здесь - http: // stackoverflow .com/q/12217424/1636917 –
Интересно. Я пытаюсь запустить контейнер-докер в производстве (да, на Elastic Beanstalk), поэтому, если все обещания верны, пока демон docker работает на экземпляре EC2 (что он делает), приложение lucee, находящееся внутри докера контейнер также должен работать. Определенно работая через некоторые препятствия, но пальцы скрещены. –
Lucee (Railo) не имеет проблемы с этой ошибкой, это относится только к Adobe CF, я думаю. –