Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конфигурация приложения включает две библиотеки для Spring.
- Для
spring-cloud-azure-appconfiguration-config
требуется Spring Boot и зависимость отspring-cloud-context
. -
spring-cloud-azure-appconfiguration-config-web
требует Spring Web и Spring Boot, а также поддерживает автоматическую проверку обновления конфигурации.
Обе библиотеки поддерживают активацию вручную для проверки обновленных значений конфигурации.
Обновление позволяет обновить значения конфигурации, не перезагрузив приложение, хотя это приводит к повторному воссозданию всех бобов.@RefreshScope
При обновлении проверяется наличие любых изменений в настроенных триггерах, включая метаданные. По умолчанию минимальный промежуток времени между проверками изменений (интервал обновления) составляет 30 секунд.
Автоматическое обновление spring-cloud-azure-appconfiguration-config-web
активируется на основе действия, а именно ServletRequestHandledEvent
Spring Web.
ServletRequestHandledEvent
Если параметр не активируется, spring-cloud-azure-appconfiguration-config-web
автоматическое обновление не активирует обновление, даже если истек срок действия кэша.
Выполнение обновления вручную
Чтобы выполнить обновление вручную, запустите приложение Spring Boot, использующее Конфигурацию приложений, например приложение, созданное с помощью краткого руководства по Spring Boot для службы "Конфигурация приложений".
Конфигурация приложения предоставляет AppConfigurationRefresh
, который проверяет, прошел ли интервал обновления. Если интервал обновления прошел, он активирует обновление.
Чтобы использовать
AppConfigurationRefresh
, обновите HelloController.import com.azure.spring.cloud.config.AppConfigurationRefresh; @RestController public class HelloController { private final MessageProperties properties; @Autowired(required = false) private AppConfigurationRefresh refresh; public HelloController(MessageProperties properties) { this.properties = properties; } @GetMapping public String getMessage() throws InterruptedException, ExecutionException { if (refresh != null) { refresh.refreshConfigurations(); } return "Message: " + properties.getMessage(); } }
AppConfigurationRefresh
refreshConfigurations()
Значение возвращаетMono
значение true, если запускается обновление, и значение false, если нет. False означает, что срок действия кэша не истек, изменение не было, или другой поток в настоящее время проверяет наличие обновления.Примечание.
Для таких библиотек, как Spring WebFlux, для которых требуются неблокирующие вызовы,
refreshConfigurations()
следует обернуть в поток, так как загрузка конфигураций является блокирующим вызовом.new Thread(() -> refresh.refreshConfigurations()).start();
Чтобы включить обновление обновления
bootstrap.properties
:spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
Откройте портал Azure и перейдите к ресурсу Конфигурации приложений, который связан с вашим приложением. Выберите Обозреватель конфигураций в разделе Операции и создайте пару "ключ — значение", выбрав + Создать>Ключ — значение, чтобы добавить следующие параметры:
Ключ Значение страж 1 Поля Метка и Тип контента пока заполнять не нужно.
Выберите Применить.
Создайте приложение Spring Boot с помощью Maven и запустите его.
mvn clean package mvn spring-boot:run
В браузере перейдите по адресу
http://localhost:8080
. Появится сообщение, связанное с ключом.Вы также можете использовать инструмент curl для проверки приложения, например следующим образом:
curl -X GET http://localhost:8080/
Чтобы проверить динамическую конфигурацию, откройте портал Конфигурации приложений Azure, связанный с вашим приложением. Выберите Обозреватель конфигурацийи обновите значение отображаемого ключа, например следующим образом:
Ключ Значение /application/config.message Hello — обновлено Задайте для созданного ранее ключа Sentinel новое значение. Это изменение активирует приложение для обновления всех ключей конфигурации после прохождения интервала обновления.
Ключ Значение страж 2 Обновите страницу браузера дважды, чтобы увидеть новое сообщение. При первом перезапуске активируется обновление, а при втором — загружаются изменения.
Примечание.
Библиотека проверяет наличие изменений только после прохождения интервала обновления. Если интервал обновления не прошел, он не проверяет наличие изменений. Дождитесь передачи интервала, а затем активируйте проверку обновления.
Использовать автоматическое обновление
Чтобы использовать автоматическое обновление, запустите приложение Spring Boot, использующее Конфигурацию приложений, например приложение, созданное с помощью краткого руководства по созданию приложения Spring Boot для службы "Конфигурация приложений".
Затем откройте файл pom.xml в текстовом редакторе и добавьте <dependency>
для spring-cloud-azure-appconfiguration-config-web
с помощью следующего кода.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>5.22.0</version>
</dependency>
Чтобы включить обновление обновления
bootstrap.properties
:spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinel
Откройте портал Azure и перейдите к ресурсу Конфигурации приложений, который связан с вашим приложением. Выберите Обозреватель конфигураций в разделе Операции и создайте пару "ключ — значение", выбрав + Создать>Ключ — значение, чтобы добавить следующие параметры:
Ключ Значение страж 1 Поля Метка и Тип контента пока заполнять не нужно.
Выберите Применить.
Создайте приложение Spring Boot с помощью Maven и запустите его.
mvn clean package mvn spring-boot:run
В браузере перейдите по адресу
http://localhost:8080
. Теперь отображается сообщение, связанное с ключом.Вы также можете использовать инструмент curl для проверки приложения, например следующим образом:
curl -X GET http://localhost:8080/
Чтобы проверить динамическую конфигурацию, откройте портал Конфигурации приложений Azure, связанный с вашим приложением. Выберите Обозреватель конфигурацийи обновите значение отображаемого ключа, например следующим образом:
Ключ Значение /application/config.message Hello — обновлено Задайте для созданного ранее ключа Sentinel новое значение. Это изменение активирует приложение для обновления всех ключей конфигурации после прохождения интервала обновления.
Ключ Значение страж 2 Обновите страницу браузера дважды, чтобы увидеть новое сообщение. При первом перезапуске активируется обновление, а при втором — загружаются изменения, так как первый запрос возвращается с использованием исходной области.
Примечание.
Библиотека проверяет наличие изменений только после прохождения интервала обновления. Если интервал обновления не прошел, он не проверяет наличие изменений. Дождитесь передачи интервала, а затем активируйте проверку обновления.
Следующие шаги
В рамках этого руководства вы включили в приложении Spring Boot динамическое обновление параметров конфигурации из службы "Конфигурация приложения". Если возникнут дополнительные вопросы, см. справочную документацию, в ней подробно описан принцип работы библиотеки Spring Cloud для Конфигурации приложений Azure. Чтобы узнать, как с помощью удостоверения, управляемого Azure, упростить доступ к службе "Конфигурация приложений Azure", перейдите к следующему учебнику.