Glassfish Amazon AWS EC2 и проблема кэширования ELB - PullRequest
1 голос
/ 28 апреля 2011

У меня есть 2 экземпляра EC2, на которых запущен сервер приложений Glassfish (работает точно такое же развернутое приложение), и они работают под управлением Elastic Load Balancer.Это прекрасно работает, но меня беспокоит несоответствие кэширования EJB-компонентам.

Ситуация: клиент отправляет запрос в ELB, который пересылает в экземпляр EC2 1. Некоторые объекты EJB, назовем его EJB1, кэшируются.Клиент -> ELB -> EC2-1 (EJB1 кэшируется)

Через некоторое время Клиент отправляет другой запрос, но теперь он перенаправляется в экземпляр EC2 2. EJB1 теперь кэшируется в этом экземпляре.Клиент -> ELB -> EC2-2 (EJB1 кэшируется)

Через некоторое время Клиент отправляет другой запрос и перенаправляется в экземпляр EC2 1. EJB1 все еще находится в кэше, но не обновлен, поэтомувызывая несогласованность кэша.Клиент -> ELB -> EC2-1 (EJB1 кэшируется)

К сожалению, я пока не смог увидеть эту проблему, но я чувствую, что это возможно.Как правильно отключить кэширование EJB-компонентов?

Спасибо.

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Пока вы не внедрите кеш уровня 2, ваши экземпляры не будут совместно использовать кеш.

Вот несколько ссылок на решения для кэширования уровня 2.(с открытым исходным кодом) http://www.terracotta.org/ehcache/ (много денег) http://www.oracle.com/technetwork/middleware/coherence/overview/index.html

1 голос
/ 29 апреля 2011

Amazon поддерживает балансировку нагрузки session sticky . Это означает, что при условии, что у пользователя включены файлы cookie, они отправляются в один и тот же экземпляр EC2 в течение всего срока их сеанса.

...