В предыдущем блоге мы разместили файлы конфигурации в наших соответствующих службах, но в этом есть один недостаток. После изменения конфигурации мы должны выключить, а затем изменить файлы конфигурации перед выходом в Интернет. Если это мало услуг, это понятно, что это сделать. Однако, если в настоящее время требуется сотни услуг, в настоящее время необходимо управление распределенным конфигурацией. И Spring Cloud Config создана для решения этой проблемы. Ниже приводится комбинация Gitlab для реализации построения распределенного центра конфигурации. Центр конфигурации конфигурации Spring Cloud состоит из конца сервера и конца клиента.
Условие: Создайте новый конфигурационный файл configserver-dev.properties в рамках проекта в Gitlab
1. Настроить сервер
1. Добавьте зависимости
<depervice> <groupid> org.springframework.cloud </GroupId> <ArtifactId> Spring-Cloud-config-server </artifactid> </vehyse>
2. Включить поддержку в основном классе приложения
@Enableconfigserver
3. Настройка файла Application.yml
Сервер: порт: 8888 Spring: Приложение: Имя: Config Cloud: Config: Server: GIT: URI: https://gitlab.xxx.com/xxxxx/xxxx.git # Настройте адрес репозитория Gitlab. Обратите внимание, что поисковый paths: /config-repo # относительный адрес в соответствии с адресом репозитория Gitlab может быть настроен с помощью нескольких, использования и разделения. Имя пользователя: ваше имя пользователя # Gitlab Repository Password: ваш пароль # gitlab
ПРИМЕЧАНИЕ. Если файл конфигурации помещается в корневую каталог репозитория GIT, нет необходимости использовать параметр SearchPaths. Файл конфигурации в этом примере находится в каталоге config-repo, поэтому используйте параметр searchpaths, чтобы запустить сервер конфигурации для поиска подкаталории Config-Repo.
4. Запустите сервер и введите http: // localhost: 8888/configserver/dev/master в браузере
{"name": "configserver", "Profiles": ["dev"], "label": "Master", "version": "073cda9ce85a3eed00e406f4ebcc4651ee4d9b19", "Состояние": Null, "PropertySources": [{"wome": wome ": wome". "https://gitlab.xxx.com/xxxxx/project/config-repo/configserver.properties", "Источник": {"name": "chhliuxyh", «Привет»: «Я король мира !!!Вы можете видеть, что сторона сервера уже может прочитать файл конфигурации из Gitlab. Вы можете получить доступ к ресурсам на Gitlab в форме ниже
/application} /{profile} [ /{label}] /;Например, введите: http: // localhost: 8888/configserver-dev.yml в браузере, и результат заключается в следующем:
Привет: Я король мира !!! Имя: Chhliuxyh Profile: Default Profile
2. Настройте клиент
1. Добавить зависимости от POM
<depervice> <groupid> org.springframework.cloud </GroupId> <ArtifactId> Spring-Cloud-Starter-config </artifactid> </dependency> <depervice> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-web </artifactid> redytiny> </GroupD> <strifactid> spring-boot-starter-web </artifactid>
2. Настройте файл bootstrap.yml
ПРИМЕЧАНИЕ. Файл конфигурации здесь должен быть размещен в файле Bootstrap.properties или Bootstrap.yml, поскольку конфигурация конфигурации будет предшествовать Application.properties, а также загрузка Bootstrap.properties также предшествует Application.properties.
Сервер: порт: 8889 Spring: Приложение: Имя: ConfigServer # он должен соответствовать префиксу файла конфигурации. Например, наше имя файла конфигурации здесь-configserver-dev.properties, поэтому нам необходимо настроить его как Configserver Cloud: config: uri: http: // localhost: 8888/// Настройка профиля URL-профиля Spring Config Server: Dev # Укажите этикетку профиля: Master # Укажите ветвь gitlab repositor
3. Проверьте клиента
Добавьте новый контроллер в клиенту
пакет com.chhliu.springcloud.config; Импорт org.springframework.beans.factory.annotation.value; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.context.config.annotation.refreshscope; Импорт org.springframework.web.bind.annotation.getMaping; Импорт org.springframework.web.bind.annotation.restcontroller; @SpringBootApplication @RestController @Refreshscope // Аннотация @Refreshscope указывает, что клиент конфигурации также обновляет значение введенного свойства, когда конфигурация сервера изменяет открытый класс SpringCloudConfigClientApplication {public Static void main (string [] args) {SpringApplication.Run (SpringCloudConfigclict. } @Value ("$ {hello}") // Читать свойства в файле конфигурации Gitlab. Если мы прочитаем значение, это означает, что клиент в порядке частной строки; @Getmapping ("/hello") public String hello () {return this.profile; }}Посетите в браузере: http: // localhost: 8889/Привет, результат заключается в следующем:
Я король мира !!!
Это означает, что клиент уже может получить значение от сервера.
3. Динамическое обновление
Обновить конфигурации Cloud Config Config Spring без перезапуска клиента
1. Обновите значение свойства, соответствующее Hello в файле конфигурации configserver-dev.properties в репозитории Gitlab
2. Посетите http: // localhost: 8888/configserver/dev/master и обнаружите, что контент на стороне сервера обновляется
3. Отправьте запрос сообщения в Conf Client http: // localhost: 8889/обновить и вернуть 200 OK. Посетите http: // localhost: 8889/hello снова, можно увидеть, что значение атрибута чтения динамически обновлялось без перезапуска службы клиента.
PS: чтобы достичь динамического обновления, вам нужно добавить следующий стартер в файл POM
<Depective> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-Boot-Starter-Actuator </artifactid> </gethyse>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.