Я работаю над приложением загрузки java-spring. У меня есть определенные константные значения приложения, хранящиеся в базе данных Cassandra, и мне нужно попасть в базу данных для каждого запроса, чтобы получить эти постоянные значения из базы данных, что является плохой практикой. Поэтому я думал об извлечении этих значений при запуске приложения и хранении его в статических переменных и доступа к этим переменным в приложении. Но проблема, с которой я столкнулся здесь, - после запуска приложения и после того, как данные извлекаются из БД и хранятся в статических переменных, а в случае, если мы изменим значения в базе данных, эти статические переменные не обновляются новыми значениями до тех пор, пока Я перезапускаю приложение. Есть ли лучший подход для обновления этих статических переменных по мере изменения значений в базе данных без перезапуска приложения. Пожалуйста, помогите мне. Заранее спасибо.Загрузка данных из Cassandra при запуске приложения
ответ
Одним из подходов может быть использование какого-то брокера сообщений, такого как Kafka (http://kafka.apache.org/), для публикации изменений в базе данных подписчикам или (без кафки) для использования каких-либо push-уведомлений.
Возможная установка может быть что-то вроде этого:
Service2 используется для изменения ваших «константы». Поэтому вы не должны изменять эти значения напрямую, используя cqlsh, но только используя эту вторую услугу. После успешного изменения вы можете теперь отправить http-запрос на «обновить» -endpoint вашего обычного приложения с пружинным загрузочным приложением. Это уведомление обновления может инициировать обновление в вашем приложении. Это в основном подход обратного вызова.
Вторым и более гибким способом может быть использование брокера сообщений, такого как kafka. С помощью kafka вы все равно создадите сервис, который вы используете, чтобы изменить свои «константы». Разница здесь в том, что после того, как вы успешно изменили свои данные, вы отправили сообщение кафке. Kafka теперь может отправлять ваше сообщение каждой службе, которая зарегистрировала себя в качестве подписчика. Используя эту опцию, вы можете добавить несколько подписчиков, если у вас больше услуг в зависимости от ваших «констант».
Лично я не являюсь поклонником опроса, в котором вы проверяете каждые х секунд, если существует изменение.
- 1. Автоматическая загрузка при запуске приложения
- 2. Загрузка событий при запуске из базы данных
- 3. Загрузка страницы при запуске приложения rails?
- 4. Предварительная загрузка фрагментов при запуске приложения
- 5. Загрузка исходных данных при запуске приложения с данными Spring MongoDB
- 6. Загрузка изображения при запуске приложения WPF
- 7. iOS Загрузка просмотра при запуске приложения
- 8. Загрузка файла при запуске приложения WP7
- 9. Загрузка содержимого при первом запуске приложения
- 10. Загрузка данных Cassandra с SStableloader из другого кластера Cassandra
- 11. Быстрая загрузка данных при повторном запуске Activity
- 12. Ошибка при запуске Cassandra 3.4
- 13. Ошибка Cassandra при запуске rspec
- 14. Загрузка базы данных при запуске замедляет приложение
- 15. Загрузка данных при запуске и сохранить при выключении
- 16. Загрузка QImages из памяти при запуске
- 17. Загрузка icCube при запуске
- 18. Почему загрузка приложения не запускается при запуске приложения?
- 19. Создание тестовых данных при запуске приложения
- 20. Загрузка из текстового файла при запуске программы
- 21. Cassandra генерирует ошибку «OutOfMemory» при запуске узлов
- 22. Ошибка при запуске приложения при запуске устройства
- 23. Импорт основных данных при первом запуске приложения
- 24. Как загрузить базу данных при запуске приложения?
- 25. WP8.1 При запуске приложения WinJS при запуске из сообщения тоста
- 26. Ожидание загрузки данных при запуске приложения
- 27. Django Views Сохранение данных при запуске приложения
- 28. Предварительная загрузка UIView для минимизации задержки при запуске приложения Iphone
- 29. Создание базы данных SQLlite при запуске приложения
- 30. При запуске приложения для Android при запуске
Показать код, по которому вы пользовались. «Типичным» решением является запуск цикла таймера в вашем приложении для опроса базы данных на регулярном цикле (например, один раз в минуту, например). Это заставит приложение получать последние значения в течение 60 секунд после их изменения. – Brandon