Храните редко меняющуюся информацию в приложении Spring - PullRequest
0 голосов
/ 26 мая 2020

Я работаю над микросервисом (загрузка Spring), который требует хранения некоторой статической c информации, которая редко изменяется (раз в квартал). Данные (ниже) относятся к отчетам компании, которые выглядят как

reportId#1: "frequency"="daily","to":"some email ids"
reportId#2: "frequency"="weekly", "to":"some emailids"

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

У меня вопрос ... Как лучше всего хранить эту информацию? У меня есть некоторые мысли ... и вот мои взгляды.

a) Нет SQL DB, например MongoDB, кажется хорошим вариантом .. Я могу создать коллекцию и сохранить ее там и получить ее один раз во время приложения запускать. Но я подумал, будет ли создание Коллекции только для хранения этой c информации хорошим выбором?

б) Redis кажется еще одним хорошим вариантом. Я могу создать шаблон для указанного выше набора данных и сохранить его там. Я могу запросить Redis на основе reportId, чтобы получить частоту и список отправителей.

c) Сохраните его в файле в пути к классам и загрузите при запуске приложения. Обратной стороной является то, что мне придется повторно развертывать приложение с новыми изменениями в файле при каждом изменении этого списка отчетов. Я считаю, что экстернализация этой информации в Mon go или Redis - лучший вариант.

d) Приложение работает в AWS .. так что я могу даже сохранить это в файле в корзине S3.

Хотите знать ваше мнение?

1 Ответ

0 голосов
/ 26 мая 2020

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

http://commons.apache.org/proper/commons-configuration///userguide/howto_reloading.html

...