Должен ли я использовать [email protected] Singleton (javax.ejb.Singleton) для статистики или мониторинга или было бы лучше кэшировать статистику в общем @ SessionScoped-Bean? Для того, чтобы очистить мой вопрос, здесь два варианта:EJB- @ Singleton для управления результатами запроса
Сценарий I:
Пользователь, начинает Websession и делает базы данных-запросы для просмотра статистики или DataTables. Эти запросы заполняются в течение всего сеанса. Таким образом, 10.000 пользователей будут делать 10 000 одинаковых запросов к базе данных.
Сценарий II:
Пользователь, начинает Websession и повторит ДАННЫЕ для статистики или DataTables из preinitialized @ Singleton-Bean. @Singleton (javax.ejb.Singleton) выполнил запрос в начале Server-Startup (@Startup). Таким образом, 10.000 пользователей могут читать из кеша ONE (@Singleton) и не должны запрашивать базу данных. My @ Singleton-Bean запускает обновление своих кэшированных данных, если кто-то другой создает/редактирует/удаляет данные.
Так что мои вопросы:
- ли Сценарий II масштабируется лучше, чем сценарий I? Я думаю да. Я прав?
- Есть ли какие-либо другие оговорки или вещи, которые следует учитывать?
- Я знаю, безграждан-Бобы масштабируются намного больше, чем @stateful или @Singleton. Должен ли я использовать @ Stateless-Bean и кэшировать запросы с чем-то вроде JPA/Hibernate Caches.
- Должен ли я использовать @ApplicationScoped (javax.enterprise.context) вместо @Singleton (javax.ejb.Singleton), чтобы использовать прокси? Было бы лучше?
Я использую Jboss AS. – nimo23