четверг, 25 июля 2024 г.

Spring Cloud Config

Spring Cloud Config. Вот есть у вас преположим spring сервис. Когда вы его запускаете, он запускается по умолчанию на порту 8080, но вы можете это катомизировать с помошью секции server.port в конфиге. С одной стороны хорошо но с другой стороны каждый раз менять там неудобно особенно если сервер этот нужно запускать в разных местах и конфиг для этих мест должен быть разным. Очевидное решение: каждое из этих мест должно хранить настройки само в себе и ваш сервис при старте должен их подхватывать. Для этого например можно поднять еще один сервис в каждом месте который и будет раздавать этот конфиг. Таким образом мы отделяем изменение конфига от изменения основного сервиса/приложения со всеми вытекающими плюсами. Ну и минус в том что теперь у нас еще по одному сервису/приложению дополнительному которое будет просто раздавать конфиг. Для этого в нашем сервисе-клиенте конфиг сервера в конфиге application.yml прописываем что он ожидает наличия конфиг- сервиса:
 spring:  
  application:  
   name: employee-service  
  config:  
   import: "optional:configserver:http://localhost:8088"  
Здесь optional означает что если сервис конфига он не подхватит то это не повод прекращать работу. Далее таким вот нехитрым способом создаем конфиг-сервис:
 @SpringBootApplication  
 @EnableConfigServer  
 public class ConfigApplication {  
      public static void main(String[] args) {  
           new SpringApplicationBuilder(ConfigApplication.class).run(args);  
      }  
 }  
Сами конфиги собственно у нас хранятся в папке resources/config нашего конфиг сервиса. Поскольку у нас приложение называется employee-service у нас конфиг должен называться employee-service.yml. Там мы добавляем точно так же
 server:  
  port: 8290  
например. Теперь сперва стартанем конфиг-сервис, потом наш employee-service и о чудо, порт теперь у нас 8290 на котором сервис стартует.

Комментариев нет:

Отправить комментарий