2016-04-01 6 views
2

Я начинаю использовать Spring Cloud Config и хотел бы дать возможность клиентам переопределять свойства, поступающие с сервера cofnig. Однако после чтения https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html это не очевидно, когда применяется облачная конфигурация.Настройка внешней конфигурации Spring Boot при использовании Cloud Config Server?

Я также читал http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html, и он говорит об переопределениях. Но они кажутся противоположными тому, что я хочу (эти переопределения предназначены для переопределения свойств, предоставляемых клиентом).

Итак, где же Cloud Config подходит для заказа? Смогу ли я предоставить локальный файл application.properties в пути к классам для переопределения определенных свойств облачной конфигурации?

+3

сервер Config применяется на верхнем уровне. Если вы хотите, чтобы приложение что-то переопределило, почему бы не указать конкретный конфигурационный сервер config config? Я немного смущен тем, что ваш случай использования. – spencergibb

+1

Посмотрите на конечную точку исполнительного механизма '/ env'. Он покажет вам источники свойств, используемые в вашем приложении, и порядок, которым они переопределяют друг друга (ранее перечисленные источники переопределяют позже перечисленные источники). В общем, источники ConfigServer очень ранние, только за пределами командной строки -D-свойств в порядке по умолчанию. –

+0

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

ответ

3

Процесс git commit/push является частью процесса, на самом деле ... Spring Cloud Config использует git для обработки конфигурационных файлов, изменений, аудита и т. Д., Так как git идеально подходит для этого, & Config использует эти сильные стороны.

Если вы ищете способ ускорить тестирование изменений конфигурации и готовы принять компромиссы, вы можете использовать репо для локальной настройки (или локальной сети) для своего репозитория конфигурации для тестирования. Я понимаю, что это не то, о чем вы спрашиваете конкретно, но это вариант, который может помочь, если вы используете приложение application.properties приложения Config сервера, чтобы указать на базовое репозиторию git. Если это так, вы можете переопределить spring.cloud.config.server.git.uri в командной строке следующим образом:

java -Dspring.cloud.config.server.git.uri = $ {HOME}/testing/config -repo -jar your_jar_here.jar

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

Надеюсь, это поможет. Если нет, или если я неправильно понял ваши цели или ограничения, пожалуйста, уточните (вариант использования или два могут помочь мне лучше triangulate, если вы можете поделиться ими), и я возьму еще один пробег в нем. :)

Cheers, Mark

+0

На самом деле, это полезно и что-то я не рассматривал. Сделав еще один шаг, похоже, я мог бы использовать сопоставление шаблонов в соответствии с профилями 'staging *' или 'dev *' и отправлять эти запросы в другой репозиторий git, который тестеры могут делать ad-hoc-изменениями без прохождения нормального git обработать. Я попробую это и приму этот ответ, если это будет работать для моего случая использования. –

+0

Я соглашусь с этим и добавлю информацию, которая доставит меня туда, где я хочу: я использую Spring Profiles, чтобы переключить URI Spring Cloud Config git на другое тестовое репо, которое в основном пустое. Поскольку git repo пуст для этого профиля, он позволяет мне переопределять свойства из переменной файла или среды (поскольку они являются единственными, которые существуют). –

+0

Находчивый! Красиво сделано, и рад, что вы снова в бизнесе. Лучше всего, Энди! –