2013-02-21 3 views
3

Мне нужно сохранить список объектов в веб-приложении. Этот список можно просмотреть или изменить (элементы, добавленные или удаленные) любым пользователем веб-приложения. Есть вероятность, что многие пользователи получают доступ к (изменению) списка почти в одно и то же время. Какой правильный подход для обмена списком. Я могу думать о двух путях.Правильный способ совместного использования объектов между разными пользователями веб-приложения

  1. статическая переменная
  2. ServletContext

Пожалуйста, дайте мне знать, какой из них подходит и почему. Также, пожалуйста, дайте мне знать, если есть другой лучший способ.

EDIT Проблема заключается в совместном использовании объектов между различными пользователями приложения.

+1

База данных. Для этого нужны базы данных. И они будут обращаться с ACIDity для вас. Все, что вы поддерживаете в памяти, не будет доступно другому экземпляру приложения, запущенному на другом сервере. –

+0

@JB Nizet: многие пользователи, получающие доступ в одно и то же время, добавят дополнительную нагрузку на БД. Существуют и другие модули, работающие с БД. Так что трафик будет высоким. – Prabhat

+0

Если вы используете Jboss, вы можете попробовать форму кластеризованного кеша в памяти. . Ниже ссылка имеет дополнительную информацию http://docs.jboss.org/jbosscache/1.4.0/TreeCache/en/html/replication.html – artfullyContrived

ответ

0

Вы можете использовать базу данных, пользовательский источник данных (простой список обернут интерфейс DataSource) и многое другое, но ...

любого экземпляра веб-приложения

она должна быть any user of webapp, правильно?

+0

Многие пользователи, получающие доступ в одно и то же время, добавят дополнительную нагрузку на БД. Существуют и другие модули, работающие с БД. Так что трафик будет высоким. – Prabhat

+0

NoSQL DB или в памяти db, как h2)? –

+0

Ищет обработку в самом приложении. – Prabhat

1

База данных, если скорость не является самым важным фактором. Если вам нужна скорость, то решение для разделяемой памяти с фиксацией хорошее. Такие как Hazelcast http://www.hazelcast.com/