Я нахожусь в подобной ситуации, и в настоящее время я обнаруживаю, что кластеризация GF может / не может сделать для меня.
Re 1) Нужны ли мне возможности кластеризации Glassfish 3.1 * 1004?*
Поскольку ваши EJB-объекты не имеют состояния, вам не нужен кластер GF для репликации сеанса / состояния (как вы говорите сами).Вы можете просто настроить несколько автономных экземпляров и развернуть на них свое приложение по отдельности.Однако даже в приложении без сохранения состояния я считаю преимущества кластера GF очень полезными - с административной точки зрения.
Кластер GF обеспечит автоматическое применение конфигурации ко всем экземплярам.JNDI реплицируется автоматически.Приложения развертываются автоматически.Это одна команда для масштабирования и добавления дополнительного экземпляра - через некоторое время ваш кластер будет расширен, а новый экземпляр настроен, развернут, запущен и готов к работе.Для меня это административный рай и достаточная причина, чтобы использовать кластер GF всякий раз, когда у меня есть более 1 экземпляра!
Одна вещь, на которую нужно обратить внимание (и я сейчас с этим плохо борюсь), может быть распределенной /скоординированный кэш L2, если ваше приложение обращается к базе данных.
Re 2) ... Как настроить JMS, чтобы она работала в кластерной среде?
Не уверен, что я понимаю ваш вопрос ... Если вы хотите иметь брокера сообщений с высокой доступностью за пределами GF, вам необходимо соответствующим образом настроить его и управлять им самостоятельно.Например, ActiveMQ имеет несколько способов настройки кластеризации / HA / горизонтального масштабирования.Если вы используете OpenMQ, предоставляемый GF, настройка GF-кластера также предоставляет кластеризованный брокер сообщений.Из коробки.
Но кластеризация брокеров - это тема сама по себе, и ее нельзя недооценивать.Возможно, вам придется подумать о постоянстве и общем хранилище сообщений и тому подобном - независимо от использования внешнего брокера или кластера, предоставленного GF.
Если JMS является такой неотъемлемой частью вашего приложения, я 'буду рекомендовать соответствующее внимание брокеру.Я бы, вероятно, не использовал GF-брокера, а имел бы отдельный брокер-кластер (разделение задач; например, вы можете обновить GF / брокера независимо друг от друга).
Re 3) EJBСлужба таймера ... Что мне нужно сделать, кроме использования общей базы данных для хранения таймеров?
Если вам требуется, чтобы таймеры автоматически запускались только один раз в вашей группе (appserver-) экземпляров, яПолагаю, вам нужно нужна кластеризация GF (плюс, конечно, общая БД).Иначе я не вижу, как каждый экземпляр должен знать, должен ли он срабатывать или нет.Однако это легко проверить ...
tl; dr
- Использование кластеризации GF для экономии на работе администратора
- Использование внешнегохорошо понятный высокодоступный брокер сообщений
- Использование общей базы данных для таймеров EJB