Q1: наверное. Это зависит от ваших требований. Просто не переусердствуйте. Иди просто. И имейте в виду, что использование таких вещей, как управляемые сообщениями bean-компоненты, означает асинхронную обработку / ответы и возможность сбоя сообщений или перехода в системную исключительную ситуацию / очередь недоставленных сообщений.
Q2: Как правило, вы хотите искать бины Java EE через JNDI. Облегчает жизнь ИМО. Возможно, вам нужен сервлет, сессионный компонент без сохранения состояния или что-то еще впереди в качестве «контроллера»? Затем вы можете загрузить данные для bean-компонентов с состоянием из базы данных, когда вам нужны эти данные, и / или записать данные в базу данных, когда вам больше не нужен bean-компонент.
Q3: Зависит от того, как вы настраиваете кластер, а также от того, какой сервер приложений вы используете. Каждый сервер может по-разному реализовывать кластеризацию / отказоустойчивость / синхронизацию и т. Д. Я бы порекомендовал прочитать документацию к вашему серверу приложений, чтобы понять это. И / или опубликуйте, какой сервер приложений вы используете, чтобы другие на этом форуме могли что-то порекомендовать. Например, мы используем IBM WebSphere Application Server версии 7.0.0.7, Network Deployment Edition. Поэтому в нашем случае мы можем настроить репликацию bean / объектов между узлами кластера.
В4: Я полагаю, что ответ «да», если вы хотите оставаться подключенным к тому же узлу кластера для каждой последующей транзакции конечного пользователя. (По крайней мере, с точки зрения входа через HTTP-сервер). Я предполагаю, что если у вас не включена привязка к сеансу, вы можете переключиться на другой узел кластера, и может оказаться сложнее найти ваши данные (особенно если вы не реплицируете их между кластерами). Это может быть сделано, это просто может быть удар по производительности. Поэтому я предполагаю, что ответ здесь «да».