Как сохранить состояние сервера между развертываниями веб-приложений, не полагаясь на базу данных? - PullRequest
1 голос
/ 03 февраля 2011

У нас есть служебное приложение spring-mvc, которое не использует базу данных, это просто оболочка мыла / отдыха. Мы хотели бы сохранить произвольное сообщение для отображения пользователям, которое сохраняется между развертываниями. Приложение должно иметь возможность как читать, так и записывать эти данные. Есть ли лучшие практики для этого?

Ответы [ 4 ]

1 голос
/ 05 февраля 2011

Несколько опций.

Запись чего-либо в файловую систему - отлично подходит для постоянства.Немного медленноОсновным недостатком является то, что это, вероятно, должна быть общая файловая система, поскольку любой тип кластеризации не справится с этим.Тогда вы попадаете в проблемы с блокировкой файлов.Очень легкая реализация

Встроенная БД - те же преимущества и недостатки, что и простая запись в файловую систему, но, вероятно, лучше справляются с проблемами блокировки / транзакций.Несколько более сложная реализация.

Распределенный кэш - как Memcached - немного быстрее, чем файл, но не намного.Имеет дело с проблемами кластеризации и блокировки.Тем не менее, это не является постоянным.Достаточно надежный для короткого перезапуска веб-приложения, но определенно не на 100%.Более сложная реализация, плюс вам нужен другой сервер.

0 голосов
/ 04 февраля 2011

Я бы просто сохранил это в файле в файловой системе.Можно использовать встроенную базу данных или что-то в этом роде, но для 1 сообщения файл подойдет.

Я бы порекомендовал хранить файл вне каталога приложения.Он может быть рядом (рядом с ним), но не храните его внутри своего каталога "webapps /" или чего-то подобного.

Возможно, вам также потребуется управлять параллелизмом.Глобальная (статическая) блокировка чтения / записи подойдет.

0 голосов
/ 05 февраля 2011

Я бы использовал JNDI.Почему слишком сложно?

0 голосов
/ 03 февраля 2011

Почему бы не использовать встроенную базу данных? Варианты:

Просто включите файл jar в classdir webapps и настройте URL JDBC как обычно.

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

...