Рубрики
Без рубрики

Сервер конфигурации Spring Cloud: Шаг за шагом

Сервер конфигурации Spring Cloud используется для обеспечения серверной и клиентской поддержки внешних приложений… С тегами spring boot, springcloud, java, микросервисы.

Spring Cloud Config Server используется для обеспечения серверной и клиентской поддержки внешней конфигурации в распределенной системе. Поэтому, когда у вас есть несколько микросервисов, и вы хотите легко управлять конфигурацией для всех из них за один раз, вы в основном будете смотреть на Spring Cloud Config Server.

Так как же нам это сделать?

Мы создадим проект git, который содержит все ваши файлы свойств для нескольких имеющихся у вас микросервисов (достаточно просто). Затем мы создаем одно загрузочное приложение spring, единственной ролью которого будет являться микросервис, указывающий на эти файлы, поскольку он действует как сервер конфигурации Spring Cloud. Все остальные микросервисы (клиенты) могут быть настроены для получения требуемых свойств с сервера конфигурации.

Это не так уж сложно, и на самом деле его легко реализовать. В приведенных ниже шагах я расскажу вам, как вы можете настроить это в своем проекте и даже настроить профили для ваших микросервисов.

1.1) Создайте приложение Spring Boot

Давайте начнем с создания нашего приложения Spring boot, используя start.spring.io Я использую Spring boot версии 2.4.3, убедитесь, что зависимость – это Config Server, а не Config Client. Нажмите сгенерировать и с тобой покончено.

1.2 Обновить основной класс

Откройте проект с помощью вашей IDE. Откройте свой основной класс Spring boot с помощью @SpringBootApplication и добавьте @EnableConfigServer также (импортировано из import org.springframework.cloud.config.server. EnableConfigServer)

1.3 Создайте репозиторий git с файлом свойств

Создайте новую папку, в которой вы будете хранить свой конфигурационный файл, и выполните git init в этой папке.

mkdir config-files
cd config-files
git init

теперь создайте файл свойств, который вы будете сопоставлять с вашим конфигурационным сервером. Мы будем называть наш микросервис: microservice-one Имя файла: miroservice-one.properties

microservice-one.value=10

Теперь добавьте и зафиксируйте свои изменения. В противном случае приложение spring boot не будет его читать

git add .
git commit -m "created property file for microservice-one"

Примечание: вы также можете использовать файлы yml здесь

1.4 Обновить приложение.свойства

Скопируйте путь к вашему новому репозиторию git и вставьте его в свой файл application.properties.

spring.application.name = spring-cloud-config-server
server.port=8888
spring.cloud.config.server.git.uri = file:///c:/Users/madsouza/Desktop/blogPost/config-files

Сервер конфигурации обычно настроен на порт 8888. Пользователи Windows должны убедиться, что вы используете/, а не \ при копировании пути.

1.5 Протестируйте это

Запустите приложение и перейдите по ссылке: http://localhost:8888/microservice-one/default где microservice-one – это имя файла, который мы создали. Как вы можете видеть, свойство, которое вы сопоставили, присутствует. На этом мы закончили настройку нашего базового сервера конфигурации Spring Cloud

Следующим шагом является извлечение свойства с этого конфигурационного сервера в независимом микросервисе. В нашем случае микросервис- один

2.1 Создание приложения Spring Boot

Вернемся к началу. весна.ввод-вывод с Spring boot версии 2.4.3 Продолжайте и создайте приложение.

2.2 Обновить приложение.свойства

Откройте приложение с помощью IDE, и пришло время выполнить некоторую настройку

spring.application.name = microservice-one
spring.config.import = optional:configserver:http://localhost:8888
#backup value
microservice-one.value=99

Здесь мы в основном импортируем сервер конфигурации и предоставляем URL-адрес для микросервиса. Мы также можем указать значение резервной копии на случай, если по какой-либо причине мы не сможем найти конфигурационный сервер.

2.3 Создайте класс конфигурации

Давайте теперь создадим класс, который может считывать свойства с сервера конфигурации

package com.markbdsouza.com.microserviceone;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("microservice-one")
@org.springframework.context.annotation.Configuration
public class Configuration {
    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

Здесь мы устанавливаем аннотацию Свойств конфигурации с именем файла. Этот класс будет автоматически установлен при запуске приложения spring boot, и он установит значение, которое присутствует на сервере конфигурации Spring Cloud

2.4 Создание контроллера Rest

Теперь давайте представим конечную точку, которая возвращает значение конфигурации

package com.markbdsouza.com.microserviceone;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MicroServiceController {

    @Autowired
    Configuration configuration;

    @GetMapping("/endpoint")
    public String retrieveLimits(){
        return configuration.getValue();
    }
}

Здесь мы автоматически подключаем класс конфигурации, который мы создали на предыдущем шаге, и устанавливаем его в конечной точке ‘/endpoint’.

2.5 Проверьте это!

Запустите приложение spring boot microservice-one. и перейдите к определенной конечной точке контроллера http://localhost:8080/endpoint

С помощью этих простых шагов вы ЗАКОНЧИЛИ! Я надеюсь, что это не покажется вам таким сложным, как вы думали!!

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

3.1) Зафиксируйте дополнительные файлы свойств в git

Теперь создайте дополнительные файлы application.properties. Один для разработчиков и один для контроля качества. Имя файла: микросервис-один-разработчик.свойства

microservice-one.value=50

Имя файла: microservice-one-qa.properties

microservice-one.value=75

убедитесь, что вы выполняете git add и commit

git add .
git commit -m "created additional dev qa property files"

Это все, что вам нужно, чтобы добавить новые файлы свойств. Вам не нужно прикасаться к приложению spring boot, которое мы создали как таковое. Просто проверьте созданные файлы.

3.2) Протестируйте конечные точки сервера, связанные с профилем

Ранее мы перешли к http://localhost:8888/microservice-one/default Теперь в нашем порту 8888 открываются 2 новые конечные точки.

http://localhost:8888/microservice-one/dev

http://localhost:8888/microservice-one/qa Обратите внимание, что для обоих из них мы фактически также видим доступное значение по умолчанию.

3.3) Обновите микросервис

Все, что вам действительно нужно сделать, это обновить файл application.properties microservice-one и установить профиль, который вы хотите использовать spring.profiles.active=dev Общий файл теперь будет выглядеть следующим образом

spring.application.name = microservice-one
spring.config.import = optional:configserver:http://localhost:8888
spring.profiles.active=dev

#backup value
microservice-one.value=99

3.4) Одно последнее испытание

Теперь, если мы достигнем той же конечной точки, что и ранее: http://localhost:8080/endpoint

Насколько быстро и легко это было? Вы можете очень легко настроить его и для других профилей. Я надеюсь, что вы нашли это полезным!!

Оригинал: “https://dev.to/markbdsouza/spring-cloud-config-server-step-by-step-14fd”