Как лучше изменить переменную на сервере времени выполнения? - PullRequest
0 голосов
/ 07 мая 2018

Мы поддерживаем наш сервер раз в неделю. Иногда клиент желает, чтобы мы изменили некоторые настройки, которые уже кэшированы на сервере. Мой коллега всегда пишет некоторый код JSP для изменения этих настроек, которые хранятся в памяти.

Это хороший метод для использования такой методологии? Если наш проект не является веб-контейнером, какие инструменты могут мне помочь?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

В основном вам необходим кэш-память, в ответов найдено несколько решений, в том числе создание собственной реализации или использование существующей библиотеки Java. Вы также можете получать данные из базы данных и добавлять кэш поверх слоя базы данных.

0 голосов
/ 07 мая 2018

Обычно, по моему опыту, конфигурация сервера не сохраняется только в памяти сервера:

  • Что происходит, если после изменения конфигурации сервер был перезапущен / просто отключен по какой-то системной причине?
  • Что произойдет, если у вас есть несколько экземпляров одного и того же сервера для работы (кластер серверов, другими словами)?

Таким образом, обычно люди выбирают различные варианты «внешней конфигурации», которые могут варьироваться от «файловой» конфигурации + повторное развертывание всего кластера при каждом изменении конфигурации, до серверов управления конфигурацией (таких как Consul и т. Д. И т. Д.) , Есть также некоторые решения, которые пришли из (и использовались) в мире Java: Apache Zookeeper, сервер конфигурации облака Cloud, и многие другие. Кроме того, иногда удобно хранить конфигурации в базе данных.

Теперь к вашему вопросу: если ваш проект не является веб-контейнером, и вам все равно, что конфигурация «исчезнет» после перезапуска сервера, и вы не используете распределенный кластер серверов, то использование JSP действительно не в этом случае кажется неуместным.

Может быть, вам стоит взглянуть на JMX - расширения управления Java, которые имеют встроенное решение, так что вы, вероятно, сможете избавиться от веб-контейнера (который, похоже, не используется вашей командой в любом случае, кроме для модификаций JSP, которые вы описали).

...