Какой EJB(2.1) мне следует использовать в клиент-серверном приложении с потенциально тысячами одновременных пользователей?

Мне нужно спланировать это большое клиент-серверное приложение, взаимодействующее через EJB(2.1).

-Сервер, обслуживающий эти тысячи (потенциально десятки тысяч) клиентов, находится в одном центральном месте и имеет 2 рабочих потока.

- EJB в основном будет обслуживать обратные списки из десятков-сотен не таких огромных DTO (до 10 примитивных данных / строковых полей).

-Идентификатор пользователя имеет значение (запросы к базе данных учитывают идентификатор пользователя).

Я хочу знать, какой тип bean-компонента лучше всего использовать (даже на первый взгляд) в такой среде, имея в виду Stateless-Session, Stateful-Session, Entity или Message-Driven.

Я думаю о возможном использовании кэша bean-компонентов Stateless-Session, кажется, меньше ресурсов для создания-уничтожения объектов и ресурсов сервера, но я не эксперт.

Если у кого-то есть опыт в этом вопросе, буду очень признателен.

Спасибо, вы, ребята, правите


person vlad-ardelean    schedule 11.01.2012    source источник
comment
ejb 2 является обязательным для вас?   -  person dbrin    schedule 11.01.2012


Ответы (3)


Я считаю, что вы должны начать с лучшего понимания типов EJB и механизма контейнеров/пулов EJB в первую очередь. Для запуска вашего ejb вам понадобится правильный контейнер j2ee, который управляет своими собственными пулами bean-компонентов (настраивается), и вы не указываете, в скольких потоках он должен вызываться.

Конкретный выбор EJB зависит от того, как вы хотите обслуживать свои данные (синхронно или асинхронно — ejb без сохранения состояния или mdbs). Если взаимодействие клиент-сервер включает состояние сеанса - statefull ejb.

Если это новый проект, и вы разрабатываете его с нуля, почему ejb 2.1 вместо 3.0+, для базы данных рассмотрите возможность использования решения NoSql.

person Kris    schedule 11.01.2012

Я действительно не вижу способа для сервера с двумя потоками, обслуживающими десятки тысяч клиентов... ejb или без ejb :)

person dbrin    schedule 11.01.2012

Сессионные компоненты без сохранения состояния, но не ограничивайте себя двумя потоками. Для больших объемов, которые вы прогнозируете, вам необходимо глубже понять архитектуру сервера приложений, а также принять решение о таких вещах, как кластеризация и т. д. HTH

person user1132593    schedule 11.01.2012