Spring Cloud локальный и удаленная конфигурация сервера конфигурации - PullRequest
0 голосов
/ 20 марта 2019

Мне известны преимущества внедрения системы удаленного управления конфигурациями, в частности сервера конфигурации Spring Cloud.Из книги Spring Microservices в действии , глава 2:

При запуске микросервиса любая информация, относящаяся к среде или данным конфигурации приложения, должна быть

  • Передается в службу запуска в качестве переменных среды
  • Чтение из централизованного хранилища управления конфигурацией

Как я понимаю, когда вы используете подход Config First Bootstrap , единственная часть конфигурации, которая должна быть в любом другом микросервисе, связана с сервером конфигурации (например, указание spring.application.name в bootstrap.ymlи передавая spring.cloud.config.uri и spring.profiles.active как переменные окружения).application.yml вообще не нужно.

Итак, я немного растерялся, когда увидел, что некоторые люди спрашивают ( здесь , здесь и здесь ) как перезаписать удаленные конфигурации локально и прочитать этот Переопределение значений удаленных свойств в документации Spring Cloud:

Источники свойств, которые добавляются вВаше приложение с помощью контекста начальной загрузки часто является «удаленным» (например, с сервера Config) и по умолчанию не может быть переопределено локально, кроме как из командной строки.Если вы хотите, чтобы ваши приложения переопределяли удаленные свойства своими собственными Системными свойствами или файлами конфигурации, удаленный источник свойств должен предоставить ему разрешение, установив spring.cloud.config.allowOverride=true (это не работает для локальной установки).(...)

Существует ли в Spring Cloud действительный случай установки частичной локальной конфигурации или даже отмены удаленной конфигурации?

1 Ответ

1 голос
/ 21 марта 2019

Вы можете сослаться на это https://github.com/spring-cloud/spring-cloud-config/issues/359, как сказал автор: приложение не может самостоятельно решить, что оно может переопределить конфигурацию из удаленного источника

Итак, вы не можете установить spring.cloud.config.allowOverride=true локально.

Вы можете проверить исходный код PropertySourceBootstrapProperties.java. Есть три параметра для управления конфигурацией.

Если вы хотите переопределить удаленную конфигурацию, просто установите spring.cloud.config.overrideNone=true в remote git config.

...