Текущий подход:
Я использую сервер конфигурации (например, Spring Cloud Config). для получения значений конфигурации при запуске.
Зависимости инициализируются во время запуска приложения, что делает их статическими на протяжении всего жизненного цикла приложения.
Однако, если зависимость изменяется (например, миграция базы данных или ротация ключей API), сервис требуется перезагрузка для применения обновленной конфигурации, что не идеально подходит для производственной среды.
Что я ищу:
Как можно Я разрабатываю приложение для динамической перезагрузки или обновления этих зависимостей во время выполнения?
Существуют ли в Java библиотеки или платформы, которые могут помочь эффективно реализовать этот шаблон?
Как я могу обеспечить согласованность и избежать состояний гонки при обновлении зависимостей пока служба обрабатывает запросы?
Что я Попробовано:
Реализован собственный наблюдатель конфигурации, который прослушивает изменения с сервера конфигурации и обновляет общий объект.
Пример кода:
java
Код: Выделить всё
public class ConfigWatcher {
private volatile DatabaseConfig databaseConfig;
@Scheduled(fixedDelay = 10000) // Poll every 10 seconds
public void refreshConfig() {
this.databaseConfig = configServer.fetchDatabaseConfig();
}
public DatabaseConfig getDatabaseConfig() {
return databaseConfig;
}
}
Вопросы:
Как я могу динамически обрабатывать более сложные зависимости, такие как пулы соединений или HTTP-клиенты?
Существуют ли лучшие шаблоны проектирования или платформы для достижения динамических обновлений зависимостей в микросервисах Java?
Как я могу это сделать? тестировать такие системы на согласованность во время обновления во время выполнения?
Будем очень признательны за любые рекомендации, примеры кода или идеи дизайна!
Я попробовал инициализировать объект книги, но не знаю, как это сделать правильно. .
Подробнее здесь: https://stackoverflow.com/questions/792 ... ture-witho
Мобильная версия