В кластере Tomcat, как совместно использовать бины в приложении? - PullRequest
1 голос
/ 11 мая 2009

Это может звучать как тупой или простой вопрос, но у меня действительно мало или совсем нет опыта кластеризации любого рода, и мне просто любопытно, возможен ли и как определенный сценарий.

Допустим, я настроил кластер из N экземпляров Tomcat и развернул свое приложение App1 во всех N экземплярах.

Что мне нужно сделать, чтобы иметь возможность использовать определенные бины в приложении - не все, а некоторые - для совместного использования в кластере?

то есть, если бы у меня был бин для WebsiteSettings, я хотел бы иметь некоторый процесс поиска, в котором приложение может запросить бин и получить его экземпляр, и любые обновления свойств / значений бина также доступно для любых других машин в кластере, т. е. WebsiteSettings.getGreeting() будет возвращать одно и то же значение на всех N машин при каждом обновлении.

Нужно ли мне устанавливать эти bean-компоненты как MBeans и App1 искать их через JMX? Будет ли тогда поддержка кластеризации Tomcat позаботиться о автоматической репликации изменений в MBean на все узлы в кластере?

Ответы [ 2 ]

5 голосов
/ 25 мая 2009

Пожалуйста, взгляните на Терракотовая - она ​​позволяет вам иметь один и тот же объект (в некотором роде) во многих случаях, когда все обновления других узлов выполняются без шва на уровне JVM и не в вашем коде.

Вы можете взглянуть на это для получения дополнительной информации - Что такое терракота

1 голос
/ 11 мая 2009

Одним из вариантов является использование общего распределенного кэша. Есть несколько доступных, которые легко дадут вам эту функциональность.

...